邊緣檢測學習筆記

2021-10-16 17:11:36 字數 3091 閱讀 7478

cv2.sobel(src,ddepth,dx,dy,ksize=)

src:影象

ddepth:影象深度(cv_64f表示雙精度浮點型)

dx,dy水平和數值方向

ksize:sobel運算元,取值3~31的奇數。因為運算元矩陣一定要存在中心點。

import cv2 as cv

defshowimg

(img,name)

: cv.namedwindow(name,0)

;#可調大小

#sobel運算元

sobelx=cv.sobel(img,cv.cv_64f,1,

0,ksize=17)

sobely=cv.sobel(img,cv.cv_64f,0,

1,ksize=17)

#分開計算結果更加清晰

sobelxy=cv.addweighted(sobelx,

0.5,sobely,

0.5,0)

#梯度絕對值轉換

sobelx=cv.convertscaleabs(sobelx)

sobely=cv.convertscaleabs(sobely)

sobelxy=cv.convertscaleabs(sobelxy)

showimg(sobelx,

'sobelx'

)showimg(sobely,

'sobely'

)showimg(sobelxy,

'sobelxy'

)cv.waitkey(

)cv.destroyallwindows(

)

cv2.scharr(src,ddepth,dx,dy)src:影象

ddepth:影象深度

dx,dy水平和數值方向

import cv2 as cv

defshowimg

(img,name)

: cv.namedwindow(name,0)

;#可調大小

#scharr運算元

scharrx=cv.scharr(img,cv.cv_64f,1,

0)scharry=cv.scharr(img,cv.cv_64f,0,

1)#分開計算結果更加清晰

scharrxy=cv.addweighted(scharrx,

0.5,scharry,

0.5,0)

#梯度絕對值轉換

scharrx=cv.convertscaleabs(scharrx)

scharry=cv.convertscaleabs(scharry)

scharrxy=cv.convertscaleabs(scharrxy)

showimg(scharrx,

'scharrx'

)showimg(scharry,

'scharry'

)showimg(scharrxy,

'scharrxy'

)cv.waitkey(

)cv.destroyallwindows(

)

import cv2 as cv

defshowimg

(img,name)

: cv.namedwindow(name,0)

;#可調大小

laplacian=cv.laplacian(img,cv.cv_64f)

laplacian=cv.convertscaleabs(laplacian)

showimg(laplacian,

'laplacian'

)cv.waitkey(

)cv.destroyallwindows(

)

1)使用高斯濾波器,平滑影象,濾除雜訊

2)計算影象中每個畫素點的梯度和方向

3)應用非極大值抑制,消除邊緣檢測帶來的雜質雜訊

4)應用雙閾值檢測,確定真實檢的和潛在的邊緣

5)通過抑制孤立的弱邊緣最終完成邊緣檢測

cv.canny(img,min,max,aperturesize=3)

min:最小值

max:最大值

aperturesize:核心大小3~7奇數

影象灰度梯度 高於maxval被認為是真正的邊界,低於minval的捨棄。兩者之間的值要判斷是否與真正的邊界相連,相連就保留,不相連捨棄。(此段以及以下摘自大佬的python opencv入門 canny邊緣檢測(15))

;#可調大小

OpenCV學習筆記 6 邊緣檢測筆記

void roberts inputarray src,outputarray dst,int ddepth,int x 1,int y 0,int bordertype border default void conv2d inputarray src,inputarray kernel,outp...

opencv學習筆記2 邊緣檢測

總結 roberts運算元檢測方法對具有陡峭的低雜訊的影象處理效果較好,但是利用 roberts 運算元提取邊緣的結果是邊緣比較粗,因此邊緣的定位不是很準確。sobel運算元檢測方法對灰度漸變和雜訊較多的影象處理效果較好,sobel 運算元對邊緣定位不是很準確,影象的邊緣不止乙個畫素。prewitt...

深度學習筆記(21) 邊緣檢測

在計算機視覺中使用的比較多的就是卷積神經網路 卷積運算是卷積神經網路最基本的組成部分 邊緣檢測相對比較容易理解,就把它作為卷積運算的入門樣例 在人臉識別中 神經網路的前幾層有可能是檢測邊緣的 後面的層有可能檢測到物體的部分區域 更靠後的一些層可能檢測到完整的物體 這個例子中就是人臉 給了上面這樣一張...