999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV的邊緣檢測技術(shù)研究

2017-08-10 09:52:41郭志彪段為
現(xiàn)代計算機 2017年15期
關(guān)鍵詞:檢測

郭志彪,段為

(中國移動通信集團(tuán)廣東有限公司,廣州 510623)

基于OpenCV的邊緣檢測技術(shù)研究

郭志彪,段為

(中國移動通信集團(tuán)廣東有限公司,廣州 510623)

邊緣檢測是圖像分析識別前必不可少的環(huán)節(jié),是一種重要的圖像預(yù)處理技術(shù)。回顧圖像邊緣檢測技術(shù)的發(fā)展歷程,討論一些典型的邊緣檢測算法的特點,分析其機理和優(yōu)劣,并對其中的Canny算法進(jìn)行優(yōu)化并通過OpenCV實現(xiàn)。

邊緣檢測;機器視覺;圖像處理;OpenCV

0 引言

數(shù)字圖像邊緣檢測技術(shù)是信息科學(xué)近年來發(fā)展最為迅速的學(xué)科之一。而圖像邊緣作為圖像最基本的特征之一,在圖像分割、圖像識別以及其他圖像相關(guān)的各個領(lǐng)域有著廣泛的應(yīng)用,邊緣檢測是圖像處理和機器視覺中的一個重要分支,在圖像分析中有著重要的意義。

1 典型的邊緣檢測算子

隨著計算機技術(shù)的發(fā)展和普及,數(shù)字圖像處理也迎來了迅猛發(fā)展的時期。對數(shù)字圖像的處理已廣泛應(yīng)用到各個領(lǐng)域。而邊緣信息作為重要的圖像特征信息,許多學(xué)者采用不同的方法研究如何提取圖像的邊緣。目前,常用的邊緣檢測算子有以下幾種:Sobel算子、Isotropic Sobel算子、Roberts算子、Prewitt算子。

1.1 Sobel 算子

Sobel算子基本步驟是先對圖像進(jìn)行平滑處理,消除噪聲的影響,然后再作微分運算。Sobel算子平滑處理時使用的積卷核如圖1。選擇中心點為錨點,對周圍像素的灰度進(jìn)行加權(quán)平均,找出變化明顯的邊緣點。但使用該算子容易造成邊緣不連續(xù),丟失細(xì)節(jié)。

圖1 Sobel算子的卷積因子

1.2 Isotropic Sobel 算子

Isotropic Sobel算子是Sobel算子的另一種形式,基本原理與Sobel算子相似,主要區(qū)別在于Isotropic Sobel算子在檢測不同方向的邊沿時使用同一梯度幅值。

1.3 算子Roberts

Roberts算子是利用局部差分算子尋找邊緣的算子,使用2×2的卷積模板對圖像進(jìn)行加權(quán)平均。由圖2可知,該算子是利用對角線方向相鄰的兩像素之差進(jìn)行梯度幅值檢測的。但該算法只考慮對角線方向的像素,忽略了水平方向與垂直方向。無法檢測水平相鄰像素或垂直相鄰像素灰度值變化的局部邊緣。而且,在該算子中像素點是直接參與運算,導(dǎo)致該算子對噪聲較敏感。

圖2 Roberts算子的卷積因子

1.4 算子Prewitt

Prewitt算子與Sobel算子相似,同樣利用3×3模板計算差分算子,根據(jù)在邊緣點處達(dá)到極值這一現(xiàn)象進(jìn)行邊緣的檢測。卷積因子如圖3。Prewitt算子需要人為指定閾值,對噪聲有抑制作用,但同時容易造成邊緣誤判,邊緣定位精度不是很高。

圖3 Prewitt算子的卷積因子

綜上所述,現(xiàn)有的邊緣檢測算子各有優(yōu)缺點,本研究利用OpenCV函數(shù)庫中的函數(shù),力求提高邊緣檢測的精度。本研究主要實現(xiàn)的目標(biāo)是對邊緣復(fù)雜的物體進(jìn)行精準(zhǔn)的邊緣檢測。

2 系統(tǒng)組成

邊緣檢測系統(tǒng)主要由加載源圖像、圖像轉(zhuǎn)成灰度并模糊化降噪、用Canny算子檢測邊緣、尋找輪廓、繪出輪廓組成。

圖4 系統(tǒng)結(jié)構(gòu)框圖

系統(tǒng)首先加載源圖像,其次,對圖像進(jìn)行灰度化以及模糊化去噪,然后利用Canny算子檢測邊緣,最后不斷逼近邊緣尋找輪廓并將輪廓繪出。

3 算法原理

3.1 灰度化及模糊化去噪

研究使用cvtColor函數(shù)實現(xiàn)圖像的灰度化。函數(shù)聲明為:

void cvtColor(InputArray src,OutputArray dst,int code,int dstCn=0)

src和dst分別是源圖像和輸出圖像;code是一個掩碼,表示源圖像和輸出圖像之間的轉(zhuǎn)化模式。最后的dstCn表示dst圖像的波段數(shù),默認(rèn)值為0,可從參數(shù)code中推斷。

code的模式包括:CV_RGB2GRAY,CV_BGR2YCrCb,CV_RGB2YCrCb,CV_YCrCb2BGR,CV_YCrb2-RGB,CV_BGR2HSV,CV_RGB2HSV,CV_HSV2BGR, CV_HSV2RGB

研究使用blur函數(shù)實現(xiàn)圖像的歸一化塊平滑操作。函數(shù)聲明為:

void blur(InputArray src,OutputArray dst,Size ksize,Point an?chor=Point(-1,-1),int borderType=BORDER_DEFAULT);

src和dst分別是源圖像和輸出圖像;ksize用于定義內(nèi)核大小;anchor表示錨點坐標(biāo),如果為負(fù)數(shù),則取核的中心為錨點,borderType用于推斷圖像外部像素的某種邊界模式。默認(rèn)為BORDER_DEFAULT。

本函數(shù)使用歸一化濾波器對圖像進(jìn)行降噪處理,基本原理為獲取圖像某一像素點相鄰的像素值,對相鄰像素值進(jìn)行加權(quán)平均計算,最后輸出的像素值為相鄰像素的加權(quán)平均值。

3.2 利用Canny 算子檢測邊緣

研究使用Canny函數(shù)實現(xiàn)圖像的邊緣檢測。函數(shù)聲明為:

void Canny(InputArray image,OutputArray edges,double threshold1,double threshold2,int apertureSize=3,bool L2gradi?ent=false);

其中image和edges分別是源圖像和輸出圖像;threshold1表示第一個閾值,threshold2表示第二個閾值;apertureSize表示應(yīng)用Sobel算子的孔徑大小,默認(rèn)為3;L2gradient為計算圖像梯度的標(biāo)識,默認(rèn)為false。

Canny邊緣算子基本原理是先利用高斯平滑濾波器降噪,然后采用“非極大抑制”技術(shù)確定邊緣?;静襟E為消除噪聲,計算梯度幅值和方向,非極大值抑制,滯后閾值。

首先,Canny算子對圖像使用高斯平滑濾波濾波器進(jìn)行降噪。然后使用一階偏導(dǎo)的有限差分來計算梯度的幅值和方向,使用卷積模板圖5。接著使用非極大值抑制技術(shù)來保留局部梯度最大的點以確定邊緣,先將中心點像素M與沿著梯度線的像素相比。如果M的梯度值低于沿梯度線的兩個相鄰像素梯度值則令M=0(見式(3))。最后對圖像進(jìn)行滯后閾值。指定高低兩個閾值作用于非極大值抑制圖像,獲取兩個閾值邊緣圖像。對于高閾值邊緣圖像,假邊緣較少,但不連續(xù),可在高閾值邊緣圖像的8鄰點位置尋找可連接邊緣,利用在高閾值邊緣圖像收集的邊緣在低閾值邊緣圖像上連接成輪廓。

圖5 Canny算子的卷積因子

3.3 尋找輪廓

研究使用findContours函數(shù)來尋找物體輪廓,函數(shù)聲明為:

void findContours(InputOutputArray image,OutputArrayO?fArrays contours,OutputArray hierarchy,int mode,int method, Point offset=Point());

其中image表示源圖像;contours為輪廓數(shù)組,每個輪廓contours[i]對應(yīng)4個hierarchy元素;mode為輪廓的檢索模式;method為輪廓的近似辦法;offset為輪廓點的偏移量,可設(shè)置為任意值。

首先,用多個頂點表達(dá)輪廓。然后用Freeman鏈碼記錄起點,以及從起點出發(fā)的連續(xù)位移。接著,在查找到輪廓后,用三種方式組織輪廓根(1)列表;(2)雙層結(jié)構(gòu);(3)樹型結(jié)構(gòu)。對于縱向,列表只有一層,雙層結(jié)構(gòu)有一或兩層,而樹型結(jié)構(gòu)可能有一層或多層。要遍歷所有的輪廓,可以使用遞歸的方式,基本原理為無限逼近Canny算子提取的邊緣。

4 算法在編程環(huán)境下的具體實現(xiàn)

本研究首先加載源圖像,對源圖像進(jìn)行灰度化、模糊化(使用歸一化濾波器)降噪。接著使用Canny算子檢測邊緣,最后以不斷逼近邊緣的方式提取輪廓并畫出來。算法的具體實現(xiàn)如下:建立一個Mat類型對象,加載源圖像。調(diào)用灰度化函數(shù)cvtColor(),模糊化函數(shù)blur()進(jìn)行降噪。調(diào)用輪廓提取函數(shù)findcontours()函數(shù),提取輪廓并保存在輪廓數(shù)組中。調(diào)用drawcontours ()函數(shù),將輪廓畫出。

5 實驗結(jié)果及分析

本研究改寫并調(diào)用OpenCV函數(shù)庫中的函數(shù),在Visual Studio 2015平臺編程實現(xiàn)了物體的邊緣檢測,實驗結(jié)果見下圖。

圖6 源圖像

圖7 去噪后的圖像

圖8 邊緣檢測效果圖

圖9 繪制輪廓

圖6所示為源圖像,圖7為灰度化、模擬化后的圖像,經(jīng)多次實驗得出降噪時,內(nèi)核大小為3,錨點位于中心時效果最好。圖8為使用Canny算子的邊緣檢測效果圖。經(jīng)實驗當(dāng)初第一滯后性閾值與第二滯后性閾值比值為1:2時效果最好。圖9為輪廓提取的效果圖。由以上圖得出,本邊緣檢測法精確度較高,抗噪能力和邊緣定位能力都比較好,抑制了虛假邊緣。

6 結(jié)語

本研究利用OpenCV函數(shù)庫中的函數(shù)。運用Can?ny算子,實現(xiàn)物體的邊緣檢測,研究注重于解決邊緣復(fù)雜的物體檢測精度低,誤判率高的問題,提高抗干擾能力和邊緣定位能力。得到比較理想的檢測效果。具有一定的實用價值。

[1]Rivero-Castillo D,Pijeira H,Assun?ao P.Edge Detection Based on Krawtchouk Polynomials.Journal of Computational and Applied Mathematics,2015,284:244-250.

[2]Liu X,Fang S.A Convenient and Robust Edge Detection Method Based on Ant Colony Optimization.Optics Communications,2015, 353:147-157.

[3]Hao F,Shi JF,Zhang ZS,Chen RW,Zhu SQ.Canny Edge Detection Enhancement By General Auto-regression Model and Bi-dimensional Maximum Conditional Entropy.Optik,2014,125(15):3946-3953.

[4]Li H,Liao X,Li C,et al.Edge Detection of Noisy Images Based on Cellular Neural Networks.Communications in Nonlinear Science and Numerical Simulation,2011,16(9):3746-3759.

[5]Li HQ,Liao XF,Li CD,Huang HY,Li CJ.Edge Detection Of Noisy Images Based on Cellular Neural Networks.Communications in Nonlinear Science and Numerical Simulation,2011,16(9):3746-3759.

[6]郭平,趙剛,張晶.基于Matlab數(shù)字圖像處理的方法應(yīng)用教學(xué)[J].山東工業(yè)技術(shù),2015(8):270-271.

[7]許宏科,秦嚴(yán)嚴(yán),陳會茹.一種基于改進(jìn)Canny的邊緣檢測算法[J].紅外技術(shù),2014,36(3):210-214

Research on Edge Detection Based on OpenCV

GUO Zhi-biao,DUAN Wei

(China Mobile Communications Group Guangdong Co.,Ltd.,Guangzhou 510623)

Edge detection is an indispensable step before image analysis and recognition,which is an important technology in the image preprocessing procedure.Chiefly reviews the development of the edge detection methods,discusses the characteristic of some typical edge detection algo?rithms.The Canny algorithm is optimized and implemented with OpenCV.

郭志彪(1977-),男,廣東廣州人,工程師,碩士,研究方向為計算機、物聯(lián)網(wǎng)及ICT行業(yè)應(yīng)用等

2017-02-20

2017-05-20

1007-1423(2017)15-0029-04

10.3969/j.issn.1007-1423.2017.15.007

段為(1981-),男,山西人,工程師,碩士,研究方向為ICT、物聯(lián)網(wǎng)、大數(shù)據(jù)、云計算技術(shù)等

Edge Detection;Machine Vision;Image Processing;OpenCV

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數(shù)的乘除法”檢測題
“有理數(shù)”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 四虎永久免费网站| 国产精品yjizz视频网一二区| 囯产av无码片毛片一级| 国产美女叼嘿视频免费看| 亚洲成a人片7777| 97在线免费| 国产伦精品一区二区三区视频优播 | 91久久天天躁狠狠躁夜夜| 在线观看91精品国产剧情免费| 日本在线亚洲| 中文字幕亚洲专区第19页| 国产一区二区三区在线无码| 97在线免费视频| 97se亚洲综合在线天天| 欧美伦理一区| 国产精品v欧美| 老司机久久精品视频| 欧美激情视频二区三区| 亚洲欧美在线综合图区| 色吊丝av中文字幕| 日韩无码黄色| 国产精品片在线观看手机版| 精品国产免费观看| 久久男人视频| 波多野结衣一区二区三区AV| 91丝袜美腿高跟国产极品老师| 亚洲制服中文字幕一区二区| 日本亚洲成高清一区二区三区| 99er这里只有精品| 亚洲一级毛片免费看| 久996视频精品免费观看| 国产一级裸网站| 国产一区二区视频在线| 无码视频国产精品一区二区| 天天躁狠狠躁| 国产91在线免费视频| 呦视频在线一区二区三区| 免费国产高清视频| 国产拍揄自揄精品视频网站| 亚洲av中文无码乱人伦在线r| 最新国产午夜精品视频成人| 国产高清在线丝袜精品一区| 亚洲无码不卡网| 99在线观看免费视频| 国产精品2| 成人毛片在线播放| 国产激情无码一区二区免费| 日韩成人在线网站| 99久久精品免费观看国产| 最新国产你懂的在线网址| 亚洲日韩图片专区第1页| 国产一区在线观看无码| 久久婷婷五月综合97色| 国产精品自在线天天看片| 色香蕉网站| www欧美在线观看| 欧美高清三区| 日韩精品免费一线在线观看| 亚洲国语自产一区第二页| 婷婷色一区二区三区| 国产精品一区二区在线播放| 无码aaa视频| 中文字幕在线视频免费| 热久久这里是精品6免费观看| 国产裸舞福利在线视频合集| 97se亚洲| 亚洲日本一本dvd高清| 免费毛片全部不收费的| 中文字幕人妻无码系列第三区| 美女扒开下面流白浆在线试听| 日本免费高清一区| 欧美国产另类| 欧美一道本| 国产精品一区二区久久精品无码| 欧美日韩精品一区二区在线线| 国产农村1级毛片| 日韩精品无码不卡无码| 国内精自线i品一区202| 国产成人精品高清不卡在线 | 国产精品性| 一级片免费网站| 亚洲男人的天堂在线|