Я изучаю OpenCV с помощью Python и хочу научиться считать объекты / элементы в изображении.
Я написал код для подсчета, но получаю неправильные результаты. На изображении 12 элементов, и я получаю 40, но некоторые элементы не учитываются.
Я не знаю, что я делаю неправильно.
Это код, который у меня есть:
import cv2
img = cv2.imread('slika.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print('There are 12 elements on this image')
#cv2.imshow('img', gray)
#cv2.waitKey(0)
ret,thresh = cv2.threshold(gray,127,255,1)
contours,h = cv2.findContours(thresh,1,1)
print('Number of elements found:', len(contours))
for cnt in contours:
cv2.drawContours(img,[cnt],0,(0,0,255),2)
cv2.imshow('img', img)
cv2.waitKey(0)
Это изображение по умолчанию с 12 элементами:
![enter image description here](https://i.stack.imgur.com/DIVmd.jpg)
Это результат:
![enter image description here](https://i.stack.imgur.com/lX0PJ.jpg)
Вы видите, что розовый и два желтых элемента не распознаются, но это проблема с зеленым.
Что я делаю не так,и как это исправить?