Перейти к содержимому
Compvision.ru
mrgloom

подсчёт клеток крови

Recommended Posts

В продолжение темы, задача примерно та же самая только доп. условие, что объекты у нас имеют круглую форму.

Img.jpg

Используя матлаб

CircularHough_Grd(red, [3 35],20, 15, 1);

res_matlab.jpg

Используя cv2.HoughCircles

import cv, cv2

import numpy as np


im = cv2.imread("C:/1.jpg")


grey = cv2.cvtColor(im, cv.CV_RGB2GRAY)

blur= grey

#blur = cv2.GaussianBlur(grey, (0,0), 10)

circles = cv2.HoughCircles(blur, cv2.cv.CV_HOUGH_GRADIENT, 1, 16, np.array([]), 15, 36, 9, 35)#params?

if circles is not None:

        for c in circles[0]:

                cv2.circle(im, (c[0],c[1]), c[2], (0,255,0),2)

edges = cv2.Canny( blur, 40, 80 )


cv2.imwrite("C:/circle.jpg",im)

cv2.imwrite("C:/canny.jpg",edges)

res_opencv.jpg

Используя ImageJ watershed, предобработка CLAHE, adaptive threshold, fill holes.

watershed_res.png

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

еще есть это, но у меня сразу не заработало

https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_watershed/py_watershed.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно попробовать еще по бликам выделять, достаточно давно где-то видел подобную идею.

Наверное на них хорошо должны surf/sift срабатывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Согласен с бликами, попробуй посмотреть на результат после увеличения контраста (CLAHE), а после применить Top hat и Black hat. Дальше действовать по результату (бинаризация и т.п.): должны получиться вложенные объекты, которые и выделять.

Если клетки выделяются уверенно (без ложных положительных срабатываний), то можно ещё работать итеративно: выделил, закрасил фоном, применил дополнительный фильтр к результату, чтобы приблизить изображение к идеальному, но при этом не испортить обнаружение тех объектов, которые и так хорошо детектируются. Слипшиеся остатки делить вообще по третьему алгоритму. На практике как правило наилучший результат как раз и дают такие комбайны, а не одна мат модель, так как можно охватить большее количество граничных условий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще одна технология вспомнилась, использовал как то в детекторе глаз, погуглите статью: "Accurate Eye Center Location and Tracking Using Isophote Curvature.pdf".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×