Python 邊緣偵測Canny

markdown #說明 這個是一個常做的方法,可以偵測物件的邊緣,如果是要取圖像中的某一個物件,可以透過邊緣偵測的方式,與其它的物件切割開來,當然裡面也有threshold 要去做調整,這裡只是基礎的使用套件,實際情形會比示範的圖片更加複雜... 要做邊緣偵測,其中有一個比較重要的觀念是計算圖像梯度,梯度這個名詞的感覺是,梯度的方向是和邊界傳值的,所以梯度的方向歸類為:垂直、水平、兩條對角線,梯度為對每一個像素做檢查,看看這個點的梯度是不是周圍最大的,找到梯度之後可以設定兩個閾值,最大閾值和最小閾值,如果在大小閾值之間則被拋棄,大於或是小於則被留下。 - 參考 : https://www.jianshu.com/p/e8e1f2f1c605 #操作流程 ##Code ``` import cv2 import matplotlib.pyplot as plt img = cv2.imread('Z2.jpg',0) edges = cv2.Canny(img,100,200) plt.subplot(121),plt.imshow(img,cmap = 'gray') plt.title('Original Image'), plt.xticks([]), plt.yticks([]) plt.subplot(122),plt.imshow(edges,cmap = 'gray') plt.title('Edge Image'), plt.xticks([]), plt.yticks([]) plt.show() ``` ##DEMO

留言