python+opencv Canny邊緣檢測

OpenCV提供了一給非常方便的Canny函數(算法發明者:Jhon F.Canny)。
Canny邊緣檢測算法非常複雜,其實現有5個步驟:

  • 使用高斯濾波器對圖像進行降噪
  • 計算梯度
  • 在邊緣上使用非最大抑制(NMS)
  • 在檢測到的邊緣上使用雙閾值去除假陽性
  • 分析所有邊緣及其之間的連接,保留真正的邊緣,消除不明顯的邊緣
import cv2
#轉爲灰度圖片
img = cv2.imread(r"F:\Python\picture\lena.jpg",cv2.IMREAD_GRAYSCALE)
#降噪
img = cv2.GaussianBlur(img,(5,5),0)
#邊緣檢測,50爲低閾值,100爲高閾值,通過調整閾值可以獲得不同效果
img = cv2.Canny(img,50,100)
cv2.imshow("canny",img)
cv2.waitKey()
cv2.destroyAllWindows()

原圖:
在這裏插入圖片描述
上述代碼的效果圖:
在這裏插入圖片描述
調整閾值爲100,200後的效果:

img = cv2.Canny(img,100,200)

在這裏插入圖片描述

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