OpenCV for Python之Canny邊緣檢測

Opencv4 官方文檔 : https://docs.opencv.org/4.2.0/
Opencv4 for Python中文文檔點擊下載:OpenCV4 for Python 中文文檔

1 Canny邊緣檢測

目標是找到一個最優的邊緣檢測算法,最優邊緣檢測的含義是:
好的檢測- 算法能夠儘可能多地標識出圖像中的實際邊緣。
好的定位- 標識出的邊緣要儘可能與實際圖像中的實際邊緣儘可能接近。
最小響應- 圖像中的邊緣只能標識一次,並且可能存在的圖像噪聲不應標識爲邊緣。

2 canny邊緣檢測步驟

  1. 高斯模糊 - GaussianBlur
  2. 灰度轉換 - cvtColor
  3. 計算梯度 - Sobel/Scharr
  4. 非極大值抑制
  5. 高低閾值輸出二值圖像

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章