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
留言
張貼留言