天天看點

【CV視覺基礎】canny邊緣檢測(python實作)

Canny邊緣檢測

  1. 使用高斯濾波器,以平滑圖像,濾除噪聲。
  2. 計算圖像中每個像素點的梯度強度(大小)和方向。
  3. 應用非極大值(Non-Maximum Suppression)抑制,以消除邊緣檢測帶來的雜散響應。抑制掉小的梯度值~NMS
  4. 應用雙門檻值(Double-Threshold)檢測來确定真實的和潛在的邊緣。保留最真實的!
  5. 通過抑制孤立的弱邊緣最終完成邊緣檢測。

1:高斯濾波器

【CV視覺基礎】canny邊緣檢測(python實作)

2.梯度和方向

【CV視覺基礎】canny邊緣檢測(python實作)

3:非極大值抑制 兩種方法~

【CV視覺基礎】canny邊緣檢測(python實作)

比較目前點與挨着的兩個點的情況,大于就抑制掉它

還有另一種方法:

【CV視覺基礎】canny邊緣檢測(python實作)

4:雙門檻值檢測

【CV視覺基礎】canny邊緣檢測(python實作)

代碼

img=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,80,150)
v2=cv2.Canny(img,50,100)
# 80,150指的是minval和maxval

res = np.hstack((v1,v2))
cv_show(res,'res')

           
【CV視覺基礎】canny邊緣檢測(python實作)
【CV視覺基礎】canny邊緣檢測(python實作)

雙門檻值指定的更小一些的時候,檢測出的邊界資訊豐富

繼續閱讀