天天看點

opencv-python 圖像處理 —— canny邊緣檢測

canny邊緣檢測

有個canny函數用起來非常友善簡單

import cv2
import numpy as np

img = cv2.imread('screenshot.png', 0)
cv2.imwrite('canny.jpg', cv2.Canny(img, 200, 300))
cv2.imshow('canny', cv2.imread('canny.jpg'))
cv2.waitKey()
cv2.destroyAllWindows()
           

cv2.Canny()原型為

edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])

第一個參數為原圖,第二個參數為門檻值一,第三個參數為門檻值二

調整不同的門檻值會得到不同的結果

參考:https://blog.csdn.net/sunny2038/article/details/9202641

書上說效果不錯,實作複雜。但總感覺這樣直接簡單地調用函數不加參數,效果一般。

原圖:

opencv-python 圖像處理 —— canny邊緣檢測

得到的邊緣圖

opencv-python 圖像處理 —— canny邊緣檢測

看看經典的lenna圖

opencv-python 圖像處理 —— canny邊緣檢測

邊緣:

opencv-python 圖像處理 —— canny邊緣檢測

看看百科裡的圖檔,這就牛逼多了。

opencv-python 圖像處理 —— canny邊緣檢測