OpenCV перебирает контурыPython

Программы на Python
Anonymous
OpenCV перебирает контуры

Сообщение Anonymous »

Я пытаюсь построить все контуры, обнаруженные на изображении, с помощью линии, я могу получить доступ к каждому контуру, используя cnt = контур[номер], но я не могу получить какую-либо итерацию по массиву, всегда получаю либо


TypeError: только целочисленные массивы с одним элементом могут быть преобразованы в индекс


Когда я делаю для я в контурах:

или


ValueError: слишком много операндов


Когда у меня есть приведенный ниже код

Код: Выделить всё

img, contours,hierarchy = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for i in np.nditer(contours):
cnt = contours[i]

rows,cols = img.shape[:2]
[vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)
lefty = int((-x*vy/vx) + y)
righty = int(((cols-x)*vy/vx)+y)
img = cv2.line(im,(cols-1,righty),(0,lefty),(0,242,255),3)

cv2.imshow("line", img)
Честно говоря, я очень новичок в OpenCV и numpy и работаю над примерами, я не понимаю всего, что есть в моем коде, к моему большому недовольству. Я думаю, что это проблема с использованием массива numpy, но я не могу найти, как это сделать правильно.

Спасибо

Вернуться в «Python»