1. Берешь точку и от неё все остальные точки смотришь и определяешь насколько далеко находится остальные.
2. Определяй цвет кубиков и считай аналогично к белым кругам дополнительно.
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:])
Бля, ну а форматировать код Дядя Вася должен? Выложи на нормальный сервис. Ну и чую - тебе надо отдельно кубики находить и в них потом белые круги. А так ты просто находишь белые круги на всём этом поле. С опенсв не работал.
Бля, ну а форматировать код Дядя Вася должен? Выложи на нормальный сервис. Ну и чую - тебе надо отдельно кубики находить и в них потом белые круги. А так ты просто находишь белые круги на всём этом поле. С опенсв не работал.
Бля, ну а форматировать код Дядя Вася должен? Выложи на нормальный сервис. Ну и чую - тебе надо отдельно кубики находить и в них потом белые круги. А так ты просто находишь белые круги на всём этом поле. С опенсв не работал.
1. Берешь точку и от неё все остальные точки смотришь и определяешь насколько далеко находится остальные.
2. Определяй цвет кубиков и считай аналогично к белым кругам дополнительно.

