SimpleBlobDetector opencv python ошибка, но отсутствует вывод - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь работать с opencv SimpleBlobDetector. Моя текущая программа представляет собой простую тестовую программу, подобную этой:

import cv2
import numpy as np;

im = cv2.imread("blobs.jpg", cv2.IMREAD_GRAYSCALE)

params = cv2.SimpleBlobDetector_Params()

params.filterByArea = True;
params.minArea = 1;
params.maxArea = 1000;

detector = cv2.SimpleBlobDetector(params)

keypoints = detector.detect(im)

im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)

код выполняется до строки ключевых точек, где он должен фактически обнаруживать BLOB-объекты. он не показывает никаких сообщений об ошибках, а просто перезапускает ядро. я использовал очень простую картинку, поэтому капли должны быть обнаружены.

использованное изображение

1 Ответ

1 голос
/ 04 мая 2020

Кажется, работает на меня. Если вы используете Python 3, вы хотите использовать detector = cv2.SimpleBlobDetector_create(params), а не то, что было раньше. Я увеличил максимальную область до 10000 пикселей и также включил снимок экрана с выводом:

import cv2
import numpy as np;

im = cv2.imread("blobs.jpg", cv2.IMREAD_GRAYSCALE)

params = cv2.SimpleBlobDetector_Params()

params.filterByArea = True;
params.minArea = 1;
params.maxArea = 10000;

detector = cv2.SimpleBlobDetector_create(params)

keypoints = detector.detect(im)

im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)

output

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