Canny邊緣檢測
- 使用高斯濾波器,以平滑圖像,濾除噪聲。
- 計算圖像中每個像素點的梯度強度(大小)和方向。
- 應用非極大值(Non-Maximum Suppression)抑制,以消除邊緣檢測帶來的雜散響應。抑制掉小的梯度值~NMS
- 應用雙門檻值(Double-Threshold)檢測來确定真實的和潛在的邊緣。保留最真實的!
- 通過抑制孤立的弱邊緣最終完成邊緣檢測。
1:高斯濾波器
2.梯度和方向
3:非極大值抑制 兩種方法~
比較目前點與挨着的兩個點的情況,大于就抑制掉它
還有另一種方法:
4:雙門檻值檢測
代碼
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')
雙門檻值指定的更小一些的時候,檢測出的邊界資訊豐富