Python3+Opencv3 答題卡識別
阿新 • • 發佈:2019-02-13
小計:
1)cv2.Canny():
cv2.Canny()第一個引數是輸入影象,第二和第三個分別是minVal和maxVal。minVal和maxVal。當影象的灰度梯度高於maxVal時被認為是真的邊界,那些低於minVal的邊界會被拋棄。如果介於兩者之間的話,就要看這個點是否與某個被確定為真正的邊界點相連,如果是就認為它也是邊界點,如果不是就拋棄。
2)cv2.findContours()函式:
3) cv2.drawContours()函式:
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),還是開啟的(一條曲線)。