參考:https://my.oschina.net/DDigimon/blog/1236298?tdsourcetag=s_pctim_aiomsg
小計:
1)cv2.Canny():
cv2.Canny()第一個參數是輸入圖像,第二和第三個分別是minVal和maxVal。minVal和maxVal。當圖像的灰度梯度高於maxVal時被認爲是真的邊界,那些低於minVal的邊界會被拋棄。如果介於兩者之間的話,就要看這個點是否與某個被確定爲真正的邊界點相連,如果是就認爲它也是邊界點,如果不是就拋棄。
可參考博文:https://blog.csdn.net/sunny2038/article/details/9202641
2)cv2.findContours()函數:
對於opencv2和opencv3這個函數的返回參數個數是不同的,OpenCV2版本該函數返回兩個參數參考博文:https://blog.csdn.net/gaoranfighting/article/details/34877549
對於opencv3,返回三個參數,參考博文:https://blog.csdn.net/caicai2526/article/details/79637630
3) cv2.drawContours()函數:
可參考:https://blog.csdn.net/sunny2038/article/details/12889059
cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset ]]]]])
- 第一個參數是指明在哪幅圖像上繪製輪廓;
- 第二個參數是輪廓本身,在Python中是一個list。
- 第三個參數指定繪製輪廓list中的哪條輪廓,如果是-1,則繪製其中的所有輪廓。後面的參數很簡單。其中thickness表明輪廓線的寬度,如果是-1(cv2.FILLED),則爲填充模式。
eg:cv2.drawContours(dst,contours,-1,(0,0,255),3) --------> 最後的 3表示線寬。
4)cv2.arcLength()函數:
perimeter = cv2.arcLength(cnt,True)
輪廓周長也被稱爲弧長。可以使用函數cv2.arcLength()計算得到。這個函數的第二參數可以用來指定對象的形狀是閉合的(True),還是打開的(一條曲線)。