Сегментування таблетки від фону


9

Я нещодавно почав з обробки зображень і взяв курс, пов'язаний з цим, у школі Град. Але в мене вже є проект, який би не мав надто багато інформації про цю тему, проте я досяг певного прогресу. Я намагаюся сегментувати таблетки з їх відповідних груп. Для зображень з контрастним фоном я міг сегментувати таблетки за методом Оцу. Що стосується зображень з подібним фоном, метод Оцу не дуже працює. Я читав досить багато робіт, що стосуються сегментування, але більшість прочитаних робіт використовує ручне значення порогового значення, залежно від типу зображення. Чи можливо виявити правильне значення порогового значення та автоматично поріг зображення та використовувати методи, такі як вирощування насіння або кластеризація для сегментації зображення?

Кольоровий простір, який я використовую, є L a b *, тому я вдячний, якщо ви можете порекомендувати відповідний колірний простір, який я також повинен використовувати.

Зображення, про які йдеться:

оригінал 1

введіть тут опис зображення

результат 1

введіть тут опис зображення

оригінал 2

введіть тут опис зображення

результат 2

введіть тут опис зображення

оригінал 3

введіть тут опис зображення

результат 3

введіть тут опис зображення


7
Не могли б ви завантажити зображення, будь ласка? А як щодо адаптивного порогу?
Квентін Гейсманн

3
А як щодо етодів рівня та активних контурів? Можна сегментувати таблетки від фону не тільки за значенням інтенсивності (порогу), але на основі текстури об'єкта. Використовуваний кольоровий простір - це лише система координат кольорів - використовуйте таку, яка найкраще розрізняє кольори на вашому зображенні заради сегментації. Наприклад, якщо зображення в фіолетових тонах, ви можете використовувати перетворення сірого кольору з більшою вагою, наділене червоним і синім компонентом.
Libor


Квентін: У мене недостатньо репутації для завантаження фотографій.
GamingX

@Syed Завантажте їх кудись загальнодоступними та додайте посилання на питання, якщо Ви бажаєте.
Маврит

Відповіді:


2

Якщо ви хочете скористатися підходом до встановлення порогових значень, вам слід скористатися адаптивним методом порогування, якщо є великі варіації освітлення, як у зображенні 3-го прикладу ( тут питання dsp ).

Крім того, вам слід експериментувати з кольоровими просторами, це просто: сценарій для розкладання зображення на різні простори кольорів повинен бути не більше кількох рядків, і багато глядачів зображень мають таку можливість. Найкращого слід легко визначити просто візуально. Якщо ви хочете прочитати на просторах кольорів, тут є хороший dsp запитання .

Нарешті, ви можете спробувати інший підхід. Однією з ідей було б зробити не ідеальну сегментацію, потім виявлення ребер і, нарешті, використовувати щось на зразок перетворення Хаффа для кіл, що також добре працює на (неповних) дугах кола. (ця ідея, звичайно, стосується лише круглих таблеток)


Що було б гарною ідеєю для не досконалої сегментації?
GamingX

@Syed Виглядає як OpenCV Canny (виявлення країв) і навіть Hough працює над сірими зображеннями (не потрібно порогувати пороги), щоб ви могли пропустити крок порогового рівня всі разом. Порог - сегментація сильно залежить від знімків. Але пряма відповідь була б: вибачте, не знаю. Я думаю, що неадаптаційний метод був би достатнім, але я не міг запропонувати конкретного, оскільки не робив цього деякий час. Просто зробіть невелике дослідження простих методів сегментації;)
пенелопа

2

Кругові перетворення Hough з бібліотеки OpenCV добре підходять для цієї програми. Вам доведеться виконати ряд радіусів, але найкращий відгук дасть вам межі та центри таблеток. Зауважте, що вам доведеться використовувати узагальнені перетворення Хогга, щоб знайти некруглі таблетки. Він буде працювати навіть у тому випадку, якщо таблетки закупорили або відсутні крайові точки.

Поріг порогу може бути поганим рішенням цього, оскільки в полі ви можете потрапити в ситуації, коли жоден поріг не відокремить таблетку від фону, тому алгоритм, який залежить від відносних позицій груп ребер, є вищим.


1

Щоб вирішити цю проблему, потрібно розділити тло та передній план. Це рішення, я пропоную вам:

1) перетворити зображення з Rgb в масштаб сірого; Ви отримаєте зображення, яке ми називаємо I1;

2) застосуйте морфологічний фільтр, ерозія з використанням великого радіуса, з часом кілька разів ==> слід стерти таблетку ерозією і отримати лише фон; Ви отримаєте нове зображення I2;

3) віднімати I2до I1, ви отримаєте на передньому плані , тобто таблетки;

4) застосуйте інший морфологічний фільтр, щоб заповнити будь-яку дірочку в отриманій таблетці;

5) застосуйте морфологічний фільтр, ерозію, малий радіус, щоб видалити будь-який ізольований піксель.

Цей метод не вимагає жодного порогу, виявлення форми, сегментації кольорів чи іншого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.