Обнаружение кластера / большого двоичного объекта - PullRequest
0 голосов
/ 29 мая 2020

Я родом из мира клеточной биологии, поэтому, пожалуйста, заранее извините за недостаток знаний.

Я в основном использую ImageJ для обработки изображений, в которой мы подбираем 2D-Gaussian для обнаружения кластеров / капель / точек. См., Например, изображение ниже.

enter image description here

Я пытаюсь реализовать аналогичный конвейер в python и наткнулся на opencv. Я использую простой детектор blob, и он хорошо работает для хорошо изолированных кластеров и не так хорошо, когда несколько кластеров сгруппированы вместе. Ниже левое изображение - это необработанное изображение, а правое - после трешолдинга.

enter image description here

Мой детектор контурирует «многокластерный» кластер как единый кластер. Есть ли способ более разумно сегментировать эти многокластерные кластеры? В идеале я бы хотел использовать тот же 2D-гауссиан, но на данный момент я открыт для чего угодно?

1 Ответ

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

Попробуйте определение контура и посмотрите, работает ли оно.

contours, hierarchy = cv2.findContours(image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
out = image.copy()
out = cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)

for c in contours:
    cv2.polylines(out,[c],True,(255,0,0),1)

enter image description here

...