Обработка изображений на ключевых точках opencv - PullRequest
0 голосов
/ 29 августа 2018

Я работаю над обнаружением капель и обработкой изображений (например, анализ гистограммы) на них. Хотя я обнаружил большие двоичные объекты с помощью OpenCV SimpleBlobDetector_create(params), теперь я хочу выполнить обработку / анализ изображений для каждого обнаруженного большого двоичного объекта.

После прочтения изображения в оттенках серого (и сохранения его в переменной im) я написал следующую операцию для обнаружения капель

# Setup SimpleBlobDetector parameters.
params = cv2.SimpleBlobDetector_Params()

# Change thresholds
params.minThreshold = 10;
params.maxThreshold = 200;

# Filter by Area.
params.filterByArea = True
params.minArea = 200

# Filter by Circularity
params.filterByCircularity = True
params.minCircularity = 0.30


# Filter by Convexity
params.filterByConvexity = True
params.minConvexity = 0.5

# Filter by Inertia
params.filterByInertia = True
params.minInertiaRatio = 0.001

#now let us do blob analysis
#Set up the detector with default parameters.
detector = cv2.SimpleBlobDetector_create(params)

#Detect blobs.
keypoints = detector.detect(im)
im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

Это дает следующее изображение:

Выходное изображение после обнаружения BLOB-объектов

Насколько я понимаю, cv2.SimpleBlobDetector_create(params) выводит ключевые точки. Тип переменной каждой ключевой точки - cv2.keypoint. Я пытался понять, какие ключевые точки взяты из здесь , но это не сильно помогло. Я был бы признателен, если бы кто-нибудь показал мне направление относительно того, как анализировать (обработка изображений, например, анализ гистограммы) область внутри ключевых точек (или, в данном случае, BLOB-объектов).

...