OpenCV for Python之Canny邊緣檢測
Opencv4 官方文檔 : https://docs.opencv.org/4.2.0/
Opencv4 for Python中文文檔點擊下載:OpenCV4 for Python 中文文檔
1 Canny邊緣檢測
目標是找到一個最優的邊緣檢測算法,最優邊緣檢測的含義是:
好的檢測- 算法能夠儘可能多地標識出圖像中的實際邊緣。
好的定位- 標識出的邊緣要儘可能與實際圖像中的實際邊緣儘可能接近。
最小響應- 圖像中的邊緣只能標識一次,並且可能存在的圖像噪聲不應標識爲邊緣。
2 canny邊緣檢測步驟
- 高斯模糊 - GaussianBlur
- 灰度轉換 - cvtColor
- 計算梯度 - Sobel/Scharr
- 非極大值抑制
- 高低閾值輸出二值圖像
3 具體操作
demo:
def edge_demo(image):
blurred = cv.GaussianBlur(image, (3, 3), 0)#1
gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)#2
grad_x = cv.Sobel(gray, cv.CV_16SC1, 1, 0)#3
grad_y = cv.Sobel(gray, cv.CV_16SC1, 0, 1)
edge_output = cv.Canny(grad_x, grad_y,20, 60)#4
#edge_output = cv.Canny(gray, 30, 90)
cv.imshow("gray", gray)
cv.imshow("Canny demo", edge_output)
result:
轉載請註明轉自:https://leejason.blog.csdn.net/article/details/106445482