OpenCV實(shí)現(xiàn)Sobel邊緣檢測的示例_第1頁
OpenCV實(shí)現(xiàn)Sobel邊緣檢測的示例_第2頁
OpenCV實(shí)現(xiàn)Sobel邊緣檢測的示例_第3頁
OpenCV實(shí)現(xiàn)Sobel邊緣檢測的示例_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第OpenCV實(shí)現(xiàn)Sobel邊緣檢測的示例目錄一、Sobel算法1、算法概述2、主要函數(shù)二、C++代碼三、python代碼四、結(jié)果展示五、相關(guān)鏈接

一、Sobel算法

1、算法概述

Sobel邊緣檢測算法比較簡單,實(shí)際應(yīng)用中效率比canny邊緣檢測效率要高,但是邊緣不如Canny檢測的準(zhǔn)確,然而在很多實(shí)際應(yīng)用的場合,sobel邊緣卻是首選,Sobel算子是高斯平滑與微分操作的結(jié)合體,所以其抗噪聲能力很強(qiáng),用途較多。尤其是在對效率要求較高,而對細(xì)紋理不太關(guān)系的時候。

使用Sobel算子提取圖像邊緣分3個步驟:

提取X方向的邊緣,X方向一階Sobel邊緣檢測算法為:

提取Y方向的邊緣,Y方向一階Sobel邊緣檢測算法為:

綜合兩個方向的邊緣信息得到整幅圖像的邊緣。

2、主要函數(shù)

Sobel_x_or_y=cv2.Sobel(src,ddepth,dx,dy,dst,ksize,scale,delta,borderType)

src:傳入的圖像ddepth:圖像的深度dx、dy:指的是求導(dǎo)的階數(shù),0表示這個方向上沒有求導(dǎo),所填的數(shù)一般為0、1、2。ksize:是Sobel算子的大小,即卷積核的大小,必須為奇數(shù)1、3、5、7。如果ksize=-1,就演變成為3x3的Scharr算子,scale是縮放導(dǎo)數(shù)的比例常數(shù),默認(rèn)情況為沒有伸縮系數(shù)。borderType:是判斷圖像邊界的模式,這個參數(shù)默認(rèn)值為cv2.BORDER_DEFAULT。dst及dst之后的參數(shù)都是可選參數(shù)。

二、C++代碼

#includeiostream

#includeopencv2\opencv.hpp

usingnamespacecv;

usingnamespacestd;

intmain()

//----------------讀取圖像-----------------

Matimg=imread("1.jpg");

//黑白圖像邊緣檢測結(jié)果較為明顯

Matgray_img;

cvtColor(img,gray_img,COLOR_BGR2GRAY);

MatresultX,resultY,resultXY;

//-------------Sobel邊緣檢測--------------

//X方向一階邊緣

Sobel(img,resultX,CV_16S,2,0,1);

convertScaleAbs(resultX,resultX);

//Y方向一階邊緣

Sobel(img,resultY,CV_16S,0,1,3);

convertScaleAbs(resultY,resultY);

//整幅圖像的一階邊緣

resultXY=resultX+resultY;

//顯示圖像

imshow("resultX",resultX);

imshow("resultY",resultY);

imshow("resultXY",resultXY);

waitKey(0);

return0;

三、python代碼

importcv2

img=cv2.imread("1.jpg")

gray_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#-------------------Sobel邊緣檢測------------------------

x=cv2.Sobel(gray_img,cv2.CV_16S,1,0)

y=cv2.Sobel(gray_img,cv2.CV_16S,0,1)

#cv2.convertScaleAbs(src[,dst[,alpha[,beta]]])

#可選參數(shù)alpha是伸縮系數(shù),beta是加到結(jié)果上的一個值,結(jié)果返回uint類型的圖像

Scale_absX=cv2.convertScaleAbs(x)#convert轉(zhuǎn)換scale縮放

Scale_absY=cv2.convertScaleAbs(y)

result=cv2.addWeighted(Scale_absX,0.5,Scale_absY,0.5,0)

#----------------------顯示結(jié)果----------------------------

cv2.imshow('img',gray_img)

cv2.imshow('Scale_absX',Scale_absX)

cv2.imshow('Scale_absY',Scale_absY)

cv2.imshow('result',result)

cv2.waitKey(0)

cv2.destroyAllWindows()

四、結(jié)果展示

1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論