1
對於一個學校項目,我試圖用python和opencv來識別視頻截圖中的六邊形形狀。問題是,當我使用這段代碼時,它永遠找不到六邊形。我沒有找到它不工作的原因,所以我希望有人能幫助我。python opencv形狀檢測
代碼:
import numpy as np
import cv2
stop_cascade = cv2.CascadeClassifier('cascade.xml')
cap = cv2.VideoCapture(0)
while(True):
ret, img = cap.read()
lower = np.array([0,0,0])
upper = np.array([20,20,20])
mask = cv2.inRange(img, lower, upper)
contours, h = cv2.findContours(mask, 1, 2)
contours.sort(key = len)
for contour in contours[-3:]:
approx = cv2.approxPolyDP(contour,0.1*cv2.arcLength(contour,True),True)
if len(approx) == 6:
print "hexagon"
cv2.imshow('image', mask)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
在此先感謝
編輯: 要成爲一個更具體一點。我試過多個不同的六邊形,但是當我打印len(大約)時,它不會高於4.這是我的對象中的錯誤,還是我在找到我不知道的輪廓時出錯?
你在調試程序的過程中做了什麼,而不是說「我沒有找到它不工作的原因,所以我希望有人能幫助我?」請有一個*特定的*問題,而不是「請調試這個...」 – blacksite
我很抱歉不夠具體。我所做的調試代碼是在相機前面放置不同的六邊形形狀,而程序打印出len(大約),但它從未顯示過高於4的數字。我這樣做是因爲我的對象(六進製紙上的圖像)還是我在尋找輪廓方面的錯誤? – Nerdeose
你可以附加樣本輸入嗎? – ZdaR