Нужна помощь в извлечении объектов из изображения

Таким образом, используя 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)

Примерное изображение с обнаруженными каплями:

BLOB-детектор

Другие вопросы по тегам