Нужна помощь в извлечении объектов из изображения
Таким образом, используя K, я смог продвинуться дальше в процессе фильтрации. Однако моя цель состоит в том, чтобы обнаружить белые пятна на опубликованном изображении и сохранить каждое белое пятно как отдельный файл изображения. Как бы я поступил так?
1 ответ
Вы можете использовать обнаружение BLOB-объектов с OpenCV в Python:
BLOB-объект - это группа связанных пикселей на изображении, которые имеют общее свойство (например, значение оттенков серого). В вашем случае легкодоступные области являются каплями, и цель обнаружения капель состоит в том, чтобы идентифицировать и пометить эти области с помощью следующих шагов:
- Thresholding
- группирование
- сращивание
- Расчет центра и радиуса
Пример кода в Python будет:
# Standard imports
import cv2
import numpy as np;
# Read image
im = cv2.imread("blob.jpg", cv2.IMREAD_GRAYSCALE)
# Set up the detector with default parameters.
detector = cv2.SimpleBlobDetector()
# Detect blobs.
keypoints = detector.detect(im)
# Draw detected blobs as red circles.
# cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures the size of the circle corresponds to the size of blob
im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
# Show keypoints
cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)
Примерное изображение с обнаруженными каплями: