Проблемы с вычислением координат самого яркого участка в массиве NumPy - PullRequest
0 голосов
/ 04 июня 2019

Я снимаю тестовое изображение, нахожу интересующие меня объекты и вырезаю их для дальнейшего анализа.В этот момент у меня остается одно изображение круга, и я пытаюсь найти центр яркого пятна по отношению к центру круга.Я пытаюсь.Прошло несколько лет с тех пор, как я прошел курс 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" и получить координаты центра яркого шарика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...