OpenCV HoughCircles плохо работает на двоичных изображениях? - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь найти несколько цветных шариков на изображении, и чтобы уменьшить риск ложных срабатываний, я сначала уменьшаю изображение до двоичного изображения, основываясь на цвете шарика, который ищется в данный момент. OpenCV HoughCircles не может найти никаких кругов в двоичном изображении, в то же время демонстрируя достаточно хорошие результаты на исходном изображении, преобразованном в оттенки серого. HoughCircles просто не работает на бинарных изображениях? Я не смог найти никаких документов, предлагающих это.

Ниже оригинальное изображение: Original Image

Полученные круги: Found from original (grayscale)

Зеленая маска, из которой не найдены кружки: Green mask

1 Ответ

1 голос
/ 06 марта 2020

Исходное изображение должно быть для houghcircle : 8-bit, single-channel, and grayscale.

На вашем изображении кружок также может найти этот круг. Все, что вам нужно, это выбрать правильные параметры для функции. Я попробовал эти параметры и смог найти его:

    rows = gray.shape[0]
    circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, rows / 8,
                               param1=30, param2=15,
                               minRadius=0, maxRadius=0)

Примечание: Лучше применить gaussian или medianBlur перед кружком.

Результат:

enter image description here

...