Я снимаю тестовое изображение, нахожу интересующие меня объекты и вырезаю их для дальнейшего анализа.В этот момент у меня остается одно изображение круга, и я пытаюсь найти центр яркого пятна по отношению к центру круга.Я пытаюсь.Прошло несколько лет с тех пор, как я прошел курс CV в колледже
Я попробовал метод, приведенный здесь: https://www.pyimagesearch.com/2014/09/29/finding-brightest-spot-image-using-python-opencv/ Но я, вероятно, реализовывал его неправильно, так как всегда получал ошибки, даже читая вИсходное изображение, и я все равно хотел бы читать в массиве.
Проект PyCharms, включающий в себя скрипт запуска с тестовым изображением, размещен здесь https://github.com/chauncyca/cerberus, если это помогает
def find_circles(filepath):
img = cv2.imread(filepath, 0)
img = cv2.medianBlur(img, 5)
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 700,
param1=50, param2=30, minRadius=20, maxRadius=100)
circles = np.uint16(np.around(circles))
retval = {}
for i in circles[0, :]:
if in_range(EXPECTED, (i[0], i[1])):
# draw the outer circle
cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)
# draw the center of the circle
cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)
# crop ROI around circle...?
# make sure the bounds won't under-/overflow
cropCoords = (max(0, i[1] - CROPSIZE[0] // 2), min(img.shape[0], i[1] + CROPSIZE[0] // 2),
max(0, i[0] - CROPSIZE[1] // 2), min(img.shape[1], i[0] + CROPSIZE[1] // 2))
crop_cimg = cimg[cropCoords[0]:cropCoords[1],
cropCoords[2]:cropCoords[3]]
Вот что у меня есть, я хотел бы взять массив numpy "crop_cimg" и получить координаты центра яркого шарика.