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

Сегментация клеток с помощью opencv и python

Recommended Posts

Здравствуйте.

Есть вот такая картинка: 

pVuVH.jpg

 

Необходимо определить область каждой клетки, отделить ее от соседней, обвести контуром. Некоторые клетки находятся в процессе деления, их необходимо выделить особенно (другим цветом). Также надо посчитать количество клеток. Каждая клетка должна превратится в некий объект для дальнейшего анализа. Вот такая задача сегментации. Пытаюсь решать ее с помощью opencv и python. В opencv я совсем новичок, поэтому для начала попробовал алгоритм из документации для сегментации монет: https://docs.opencv.org/3.3.1/d3/db4/tutorial_py_watershed.html

Но для моей картинки это не подходит, контуры плохо выделяются, получается каша. Видимо это из-за того что внутренности клетки примерно одно цвета с фоном. Пробовал играться с параметрами, но безуспешно. Добился вот такой картинки: 

MA3OY.png

На этом этапе и застрял.  Сомневаюсь что я двигаюсь в правильном направлении.

Мой вопрос:

1. Какой алгоритм подошел бы мне?

2. С чего начинать?

3. Что почитать на этот счет?

 

Заранее благодарю.

 

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


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

ConnectedComponents в принципе неплохо отрабатывает и можно улучшать (добиваясь улучшить контур клетки с помощью RANSAC или HoughCircles ). Картинку не могу загрузить на сайт, чтобы показать результат.

А вообще надо пробовать Superpixels. Там еще будет лучше и в разы.

 

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


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

Посмотрите еще Watershed. Пример здесь: https://docs.opencv.org/3.3.1/d3/db4/tutorial_py_watershed.html 

 

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, mrgloom сказал:

Чем то похоже

https://www.kaggle.com/c/data-science-bowl-2018

 

Сколько у вас картинок? Есть ли разметка?

Картинка всего одна. Тут врятли получится применить машинное обучение. Думаю, нужен алгоритм который с помощью opencv проведет сегментацию.

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


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

Привет! Я правильно понимаю, что это студенческая задача?

Решается она через "порог". Задав значение 67 ты получишь результат, но будет полно мелких сегментов. Тебе нужно или удалить или не считать сегменты размер, которых меньше 400 пикселей. Моя программа удаляет сегменты, результат ниже.

MA3OY1.thumb.png.b363632c374a952d29773f246210f95a.png

P.S. Число сегментов около 320 шт.

P.P.S. Можешь попробовать порог Оцца и последующую сегментацию.

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


Ссылка на сообщение
Поделиться на других сайтах
В 26.01.2018 at 17:19, 2expres сказал:

Привет! Я правильно понимаю, что это студенческая задача?

Решается она через "порог". Задав значение 67 ты получишь результат, но будет полно мелких сегментов. Тебе нужно или удалить или не считать сегменты размер, которых меньше 400 пикселей. Моя программа удаляет сегменты, результат ниже.

MA3OY1.thumb.png.b363632c374a952d29773f246210f95a.png

P.S. Число сегментов около 320 шт.

P.P.S. Можешь попробовать порог Оцца и последующую сегментацию.

 

Спасибо за ответ. Задача не студенческая, это тестовое задание. 

Буду пробовать порог Оцу.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×