Есть программа на python с open cv которая распознает кол.кругов на кубиках
но есть проблема, я не могу посчитать сколько кругов в каждом кубике, а только сумму итого. Как мне это сделать? формула, алгоритм или что то еще
import sys
import cv2 as cv
import numpy as np
from collections import Counter
from glob import glob
def main(argv):
## [load]
default_file = 'opencv_frame_6.png'
filename = argv[0] if len(argv) > 0 else default_file
sum = 0
# Loads an image
src = cv.imread(cv.samples.findFile(filename), cv.IMREAD_COLOR)
# Check if image is loaded fine
if src is None:
print ('Error opening image!')
print ('Usage: hough_circle.py [image_name -- default ' + default_file + '] \n')
return -1
## [load]
## [convert_to_gray]
# Convert it to gray
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
## [convert_to_gray]
## [reduce_noise]
# Reduce the noise to avoid false circle detection
gray = cv.medianBlur(gray, 5)
## [reduce_noise]
## [houghcircles]
rows = gray.shape[0]
circles = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 1, rows / 15,
param1=100, param2=28,
minRadius=59, maxRadius=130)
circles1 = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 1, rows / 21,
param1=150, param2=28,
minRadius=1, maxRadius=50)## [houghcircles]
## [draw]
if circles is not None:
circles = np.uint16(np.around(circles)).astype("int")
color_red = (0,0,255)
for i in circles[0, :]:
center = (i[0], i[1])
# circle center
cv.circle(src, center, 1, (0, 100, 100), 3)
# circle outline
radius = i[2]
cv.circle(src, center,radius,(255, 0, 255), 3)
if circles1 is not None:
circles1 = np.uint16(np.around(circles1)).astype("int")
color_red = (0,0,255)
for i in circles1[0, :]:
center = (i[0], i[1])
# circle center
cv.circle(src, center, 1, (0, 100, 100), 3)
# circle outline
radius = i[2]
cv.circle(src, center, radius, (255, 0, 255), 3)
## [draw]
## [display]
cv.imshow("detected circles", src)
print (circles)
print (circles1)
#print (len(circles[0]))
#print (len(circles1[0]))
cv.waitKey(0)
## [display]
return 0
if __name__ == "__main__":
main(sys.argv[1:])