adrianoff 0 Жалоба Опубликовано January 25, 2018 Здравствуйте. Есть вот такая картинка: Необходимо определить область каждой клетки, отделить ее от соседней, обвести контуром. Некоторые клетки находятся в процессе деления, их необходимо выделить особенно (другим цветом). Также надо посчитать количество клеток. Каждая клетка должна превратится в некий объект для дальнейшего анализа. Вот такая задача сегментации. Пытаюсь решать ее с помощью opencv и python. В opencv я совсем новичок, поэтому для начала попробовал алгоритм из документации для сегментации монет: https://docs.opencv.org/3.3.1/d3/db4/tutorial_py_watershed.html Но для моей картинки это не подходит, контуры плохо выделяются, получается каша. Видимо это из-за того что внутренности клетки примерно одно цвета с фоном. Пробовал играться с параметрами, но безуспешно. Добился вот такой картинки: На этом этапе и застрял. Сомневаюсь что я двигаюсь в правильном направлении. Мой вопрос: 1. Какой алгоритм подошел бы мне? 2. С чего начинать? 3. Что почитать на этот счет? Заранее благодарю. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
idrua 8 Жалоба Опубликовано January 26, 2018 ConnectedComponents в принципе неплохо отрабатывает и можно улучшать (добиваясь улучшить контур клетки с помощью RANSAC или HoughCircles ). Картинку не могу загрузить на сайт, чтобы показать результат. А вообще надо пробовать Superpixels. Там еще будет лучше и в разы. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 26, 2018 Посмотрите еще Watershed. Пример здесь: https://docs.opencv.org/3.3.1/d3/db4/tutorial_py_watershed.html Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано January 26, 2018 Чем то похоже https://www.kaggle.com/c/data-science-bowl-2018 Сколько у вас картинок? Есть ли разметка? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
adrianoff 0 Жалоба Опубликовано January 26, 2018 2 минуты назад, mrgloom сказал: Чем то похоже https://www.kaggle.com/c/data-science-bowl-2018 Сколько у вас картинок? Есть ли разметка? Картинка всего одна. Тут врятли получится применить машинное обучение. Думаю, нужен алгоритм который с помощью opencv проведет сегментацию. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
2expres 7 Жалоба Опубликовано January 26, 2018 Привет! Я правильно понимаю, что это студенческая задача? Решается она через "порог". Задав значение 67 ты получишь результат, но будет полно мелких сегментов. Тебе нужно или удалить или не считать сегменты размер, которых меньше 400 пикселей. Моя программа удаляет сегменты, результат ниже. P.S. Число сегментов около 320 шт. P.P.S. Можешь попробовать порог Оцца и последующую сегментацию. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано January 26, 2018 Можно отсюда попробовать https://imagej.net/Auto_Threshold Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
adrianoff 0 Жалоба Опубликовано January 28, 2018 В 26.01.2018 at 17:19, 2expres сказал: Привет! Я правильно понимаю, что это студенческая задача? Решается она через "порог". Задав значение 67 ты получишь результат, но будет полно мелких сегментов. Тебе нужно или удалить или не считать сегменты размер, которых меньше 400 пикселей. Моя программа удаляет сегменты, результат ниже. P.S. Число сегментов около 320 шт. P.P.S. Можешь попробовать порог Оцца и последующую сегментацию. Спасибо за ответ. Задача не студенческая, это тестовое задание. Буду пробовать порог Оцу. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах