1. 程式人生 > >Python3+Opencv3 答題卡識別

Python3+Opencv3 答題卡識別

小計:

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),還是開啟的(一條曲線)。