亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenCV的角鐵中線檢測方法

        2010-04-26 02:31:42陸小龍
        中國測試 2010年3期
        關(guān)鍵詞:檢測

        趙 霞, 陸小龍, 廖 明

        (1.四川大學(xué)制造科學(xué)與工程學(xué)院,四川 成都 610065;2.四川航天計(jì)量測試研究所,四川 成都 610100)

        1 引 言

        鐵塔攀爬機(jī)器人的爪子使用的是電磁鐵,因此在攀爬鐵塔的過程中如何使爪子準(zhǔn)確無誤的吸附到角鐵上是機(jī)器人是否可以順利進(jìn)行攀爬的關(guān)鍵性因素。在機(jī)器人兩爪部,圓形電磁鐵的外側(cè)各安裝了一個(gè)USB攝像頭。攝像頭的對稱軸與電磁鐵爪子的對稱軸平行,所以只要拍攝到的角鐵兩邊緣的中線與攝像頭視場的中線相重合,就說明爪子已經(jīng)與角鐵的位置對正,可以進(jìn)行吸附。這里采用了Sobel算子進(jìn)行邊緣檢測,以O(shè)penCV為平臺(tái),在VB.net環(huán)境中進(jìn)行了編程,成功提取了角鐵的邊緣和中線,驗(yàn)證了算法的有效性。

        2 OpenCV簡介與使用

        2.1 OpenCV簡介

        OpenCV(Intel Open Source Computer Vision Library)是由Intel公司1999年研制開發(fā)的開源計(jì)算機(jī)視覺函數(shù)庫,擁有包括300多個(gè)C函數(shù)的跨平臺(tái)中、高層API。使用時(shí)可以大大減少開發(fā)者的編程工作量,具備強(qiáng)大的圖像和矩陣運(yùn)算能力,方便靈活的用戶接口,主要用于對圖像進(jìn)行一些高級(jí)處理,比如說特征檢測與跟蹤、運(yùn)動(dòng)分析、目標(biāo)分割與識(shí)別以及3D重建等,同時(shí)支持Windows、Linux平臺(tái),也可以移植到嵌入式開發(fā)平臺(tái)。且OpenCV不依賴于外部庫,對于商業(yè)和非商業(yè)的用戶都是免費(fèi)的。

        OpenCV相比Matlab的圖像庫,最大優(yōu)點(diǎn)是速度比較快,具有較高的實(shí)時(shí)操作性。它的底層是C和C++編寫的,有一定的靈活性,能和許多編譯器結(jié)合使用,所以它的應(yīng)用越來越多。在經(jīng)歷了Matlab圖像處理運(yùn)算的慢速度之后,很多情況下都可以使用OpenCV,這樣會(huì)更有效率,為數(shù)字圖像處理提供了極大的方便,具有了更廣闊的應(yīng)用前景。

        2.2 OpenCV在Visual Basic.net中的使用

        許多對OpenCV的使用介紹都是基于VC++或者C,其實(shí)OpenCV同樣可以在.net框架下使用。下面簡單介紹OpenCV在VB.net中如何使用。

        首先,下載并安裝Visual Studio 2005和OpenCV的同時(shí)下載解壓壓縮包Emgu.CV.Binary-1.5.0.1。EmguCV封裝了OpenCV image processing library,透過EmguCV,就可以在VS2005中使用OpenCV;其次,將Emgu.CV.Binary-1.5.0.1文件夾中的Emgu.CV.dll、Emgu.CV.ML.dll、Emgu.CV.UI.dll、Dmgu.Util.dll、ZedGraph.dll和Zlib.net.dll六個(gè)動(dòng)態(tài)鏈接庫加入到資源解決方案的引用中;最后,將EmguCV的控制項(xiàng)加載到工具箱中。進(jìn)入菜單,工具->選擇工具箱項(xiàng)目->.net Framework元件->瀏覽,進(jìn)入Emgu.CV.Binary-1.5.0.1文件夾,選擇Emgu.CV.UI.dll。之后工具箱中會(huì)出現(xiàn)ImageBox、HistogramCtrl兩個(gè)選項(xiàng)。

        經(jīng)過以上三個(gè)步驟,就已經(jīng)完成了將OpenCV嵌入到.net框架中去,接下來就可以利用OpenCV中的函數(shù)在VB.net中編寫代碼進(jìn)行圖像處理的工作了。

        3 邊緣檢測

        所謂邊緣是指其周圍像素灰度有跳躍變化的那些像素的集合。邊緣廣泛存在于物體與背景之間、物體與物體之間、基元與基元之間。因此它是圖像分割所依賴的重要特征[1]。該文需要檢測的就是物體與背景之間的邊緣,也就是角鋼與背景之間的邊緣,將角鋼與背景分離開來。

        OpenCV中用于邊緣檢測的函數(shù)有兩個(gè),Sobel函數(shù)和Canny函數(shù)。Sobel算子屬于梯度算子[2],且結(jié)合了Gaussian平滑微分,所以其結(jié)果或多或少對噪聲有一定的魯棒性[3]。Canny算法使用了拉普拉斯算子,該方法與其他邊緣檢測方法的不同之處在于:它使用兩種不同的閾值分別檢測強(qiáng)邊緣和弱邊緣,并且僅當(dāng)弱邊緣與強(qiáng)邊緣相連時(shí)才將弱邊緣包含在輸出圖像中。因此這種方法較其他方法而言不容易被噪聲“填充”,更容易檢查出真正的弱邊緣[2]。圖1是即將被檢測的灰度圖像。經(jīng)實(shí)驗(yàn)對比兩種算法,如圖2和圖3所示。

        由圖2和圖3可以看出,雖然用OpenCV中的Sobel函數(shù)進(jìn)行的邊緣檢測得到的不是二進(jìn)制圖像,但檢測的結(jié)果是檢測所需要的角鐵的兩條邊緣,很清晰地與背景分離開來了。而Canny算法因?yàn)槠錂z測的完整性實(shí)現(xiàn)而把角鐵表面和背景上的一些不需要的雜散點(diǎn)也檢測了出來,這些雜散點(diǎn)影響了后續(xù)的兩邊緣中線的檢測。因此選用Sobel函數(shù)做為邊緣檢測的函數(shù)。

        但是OpenCV中的Sobel函數(shù)進(jìn)行邊緣檢測之后的效果是灰度圖像,需要對其進(jìn)行二值化。由于角鐵特殊的結(jié)構(gòu),造成對其用Sobel函數(shù)進(jìn)行邊緣提取以后,兩條邊緣一個(gè)黑一個(gè)白。為了使二值化之后兩條邊緣全部保留,在進(jìn)行二值化之前先將黑色的邊緣轉(zhuǎn)換成白色,再對整幅圖進(jìn)行二值化。轉(zhuǎn)換之后的結(jié)果如圖4所示。

        4 提取中線

        經(jīng)過以上的邊緣提取之后,就要進(jìn)行提取中線。提取中線采取的方法是:

        (1)取點(diǎn)的條件。一行中,可以取到兩個(gè)點(diǎn),并且這兩個(gè)點(diǎn)的間隔要大于某個(gè)值。為了提高速度,不遍歷圖像所有點(diǎn),而是從圖像上半部開始符合條件的一行取左側(cè)邊緣上的一點(diǎn),間隔一定的距離后在同一行右側(cè)邊緣上取一點(diǎn),算出兩點(diǎn)的中點(diǎn)的坐標(biāo)值。

        (2)用同樣的方法在圖像的下半部的左右兩邊緣分別取兩個(gè)點(diǎn),算出這兩個(gè)點(diǎn)的中點(diǎn)的坐標(biāo)值。

        (3)連接兩個(gè)中點(diǎn),即得出兩邊緣的中線。畫出中線,如圖5所示。

        (4)計(jì)算該中線與y方向的夾角度數(shù),由此可以給控制爪子的電機(jī)發(fā)出指令,使其轉(zhuǎn)動(dòng)相應(yīng)的度數(shù),從而使爪子與角鐵位置對正。

        在實(shí)驗(yàn)中機(jī)器人攀爬過程中采集到的圖像如圖6所示,經(jīng)過邊緣檢測過后如圖7所示,仍然有很多雜散點(diǎn)存在,但是這并不影響角鐵中線的提取的結(jié)果,該算法可以避開雜散點(diǎn)實(shí)現(xiàn)中線的檢測。

        5 標(biāo) 定

        由圖6和圖7可知,角鐵的區(qū)域在視場內(nèi)占的范圍很大,很有可能在檢測的過程中視場中只出現(xiàn)一條邊緣,這樣就必須對攝像頭進(jìn)行標(biāo)定,才能在出現(xiàn)一條邊緣的情況下正確的判斷出角鐵的中線。

        標(biāo)定分 2 種方法[3]:(1)經(jīng)典的標(biāo)定方法;(2)自標(biāo)定方法。經(jīng)典的標(biāo)定方法是在一定的攝像機(jī)模型下,基于特定的條件例如形狀尺寸己知的標(biāo)定物,經(jīng)過圖像處理的手段,利用一系列數(shù)學(xué)變換和計(jì)算方法,求取攝像機(jī)模型的內(nèi)部參數(shù)和外部參數(shù)。這里采用一個(gè)簡單的方法進(jìn)行標(biāo)定。在爪子吸附在角鐵上的時(shí)候,攝像頭離角鐵的距離是一定,角鐵的寬度是一定的,只要保持?jǐn)z像頭的焦距,也就是參數(shù)不變,那么在視場中顯示出的角鐵的寬度所占的像素值也是不變的。

        當(dāng)檢測出只有一條邊緣時(shí),先利用未進(jìn)行邊緣檢測的灰度圖判斷沒有檢測出的那條邊緣在已檢測邊緣的哪一側(cè)。取圖像左上角的第一點(diǎn)灰度值,如果灰度值在角鐵的灰度值范圍內(nèi),表明未檢測出的邊緣在已知邊緣的左側(cè),反之,未檢測出的邊緣就在已知邊緣的右側(cè)。再計(jì)算已檢測出的邊緣的斜率,之后就可以根據(jù)已知的角鐵寬度像素值找出角鐵的中線。結(jié)果如圖8~圖11所示。

        6 結(jié)束語

        通過對圖像處理和OpenCV開源軟件包以及VB.net的研究,合理編寫了角鐵邊緣檢測和中線提取的算法,并在實(shí)驗(yàn)中驗(yàn)證了算法的合理和有效性,基本實(shí)現(xiàn)了功能。但是還存在一些問題,例如,算法的實(shí)時(shí)性不好,速度還不夠快,還需要今后的進(jìn)一步優(yōu)化。

        [1] 周 婷.基于OpenCV的移動(dòng)靶面圖像識(shí)別算法研究[D].大連:大連海事大學(xué),2008.

        [2] 徐 飛,施曉紅.MATLAB應(yīng)用圖像處理[M].西安:西安電子科技大學(xué)出版社,2002.

        [3] 陳小天.攝像機(jī)標(biāo)定技術(shù)[D].長沙:國防科技大學(xué),2003.

        [4]Bradski G,Kaehler A.Learning OpenCV[M].The United States of America:O’Reilly Media,Inc.,2008.

        [5]Sonka M,Hlavac V,Boyle R.圖像處理與機(jī)器視覺[M].北京:人民郵電出版社,2009.

        [6] 孫 穎,慶 生,陳 靜.一種基于OpenCV的飛機(jī)跑道及地平線檢測算法[J].智能交通,2009(3):190-191.

        [7] 李振華.基于CMOS的視頻采集及邊緣檢測系統(tǒng)的研究[D].武漢:武漢理工大學(xué),2007.

        [8] 吳曉陽.基于OpenCV的運(yùn)動(dòng)目標(biāo)檢測與跟蹤[D].杭州:浙江大學(xué),2008.

        [9] 孫觀宏,劉 江,李忠濤,等.基于OpenCV的圖像采集及激光線形提取程序的開發(fā)方式 [J].機(jī)械制造與研究,2008,37(2):53-55.

        [10]連 靜.圖像邊緣特征提取算法研究及應(yīng)用 [D].長春:吉林大學(xué),2008.

        猜你喜歡
        檢測
        QC 檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        “有理數(shù)的乘除法”檢測題
        “有理數(shù)”檢測題
        “角”檢測題
        “幾何圖形”檢測題
        日本免费一区二区精品| 精品国产乱码久久免费看| 久久久亚洲日本精品一区| 手机免费在线观看日韩av| 国产免费人成视频在线观看 | 91亚洲国产三上悠亚在线播放| 欧美一级视频在线| 精品国产三级国产av| av免费观看网站大全| 午夜福利理论片在线观看播放 | 日本一区二区午夜视频| 国产美女主播视频一二三区| 精品九九人人做人人爱| 亚洲精品午夜无码电影网| 俺来也俺去啦久久综合网| 国产偷2018在线观看午夜| 国产好片日本一区二区三区四区| 国产三级一区二区三区在线观看| 精品视频一区二区三区日本| 久久黄色视频| 亚洲一区 日韩精品 中文字幕| 性一乱一搞一交一伦一性 | 亚洲欧美日韩在线精品2021| 亚洲日本视频一区二区三区| 水蜜桃视频在线观看入口| 国产激情久久久久影院小草| 亚洲欧美激情在线一区| 天天狠狠综合精品视频一二三区| 天天摸天天做天天爽天天舒服| 亚洲天堂av在线免费播放| 蜜桃av噜噜一区二区三区9| 无码一区二区三区免费视频| 欧美成人一区二区三区| 最新亚洲人AV日韩一区二区| 亚洲av熟女天堂系列| 成熟的女人毛茸茸色视频| 国产成人无码专区| 18禁高潮出水呻吟娇喘蜜芽| 热re99久久精品国产66热6| 亚洲一区二区三区地址| 国产av无码专区亚洲avjulia|