Сегментация изображений Часть 2. Понятие связности Определение связной области: –Множество пикселей, у каждого пикселя которого есть хотя бы один сосед,

Презентация:



Advertisements
Похожие презентации
Анализ информации, содержащейся в изображении На примере бинарных изображений Бинарное изображение – изображение, пиксели которого принимают всего два.
Advertisements

12 марта 2002 г. (с) 2001Graphics & Media Lab Лекция 5 Обработка и анализ изображений В.Вежневец.
Компьютерное зрение Астана. Лекция 5. На прошлой лекции Цифровая обработка сигналов Сигналы и системы Свертка Преобразование Фурье –Спектр, высокие и.
Компьютерное зрение Лекция 4 Математическая морфология.
Логическое программировыание Презентация 5 Списки в Прологе.
Анализ информации, содержащейся в изображении. Примеры практических задач Практически все задачи решают одну из (или обе) задачи: поиск определенных объектов.
МЕТОДЫ СОРТИРОВКИ. Сортировка - расположение элементов множества в порядке расположения некоторого ключа. ОГРАНИЧЕНИЯ: 1. Рассматриваются внутренние сортировки.
Автор – Богачёва Г. В. Учитель информатики Лицей 144 Санкт - Петербурга Решение задач С 1 части С Единого государственного экзамена.
Задание бинарных деревьев с помощью массивов Обходы деревьев.
Симплекс-метод Лекции 6, 7. Симплекс-метод с естественным базисом Симплекс –метод основан на переходе от одного опорного плана к другому, при котором.
Классификация и регрессия Доклад по курсу Интеллектуальный анализ данных Закирова А.Р. 1.
далее цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)цикл с неизвестным числом шагов (цикл с условием) что такое цикл?
Сегментация изображений Часть 3. Методы теории графов Чем выгодны Теория графов – хороший инструмент для работы с изображениями – Хорошая теоретическая.
СИСТЕМА ВЫДЕЛЕНИЯ ОБЛАСТЕЙ ТЕКСТА НА НОМЕРАХ АВТОМОБИЛЕЙ.
Исследование и разработка методов сегментации и обработки полутоновых изображений в медицинской области.
Ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой»
Проверка домашнего задания 33 с с с. 148 Каждая бактерия делится на две в течение 1 минуты. В начальный момент имеется одна бактерия. Составьте.
Алгоритмы сканирования и обхода Лекция 3. Алгоритм сканирования графа Input: Орграф (граф) G и вершина s. Output: Множество R вершин, достижимых из s,
Теория графов. Теория графов – обширный самостоятельный раздел дискретной математики. Используется при проектировании компьютерных сетей, трубопроводов,
К.Ю. Поляков, Е.А. Ерёмин, 2013 Программирование на языке Паскаль § 64. Сортировка 1.
Транксрипт:

Сегментация изображений Часть 2

Понятие связности Определение связной области: –Множество пикселей, у каждого пикселя которого есть хотя бы один сосед, принадлежащий данному множеству. –Соседи пикселей: 4-связность 8-связность

Разметка связанных областей Разметка необходима для дальнейшего анализа областей. Методы объединения областей Разрастание областей (1-2 проходные) Уникальное построение области (1 проходные)

Разметка связанных областей Разрастание областей ШАГ 1 Проводим линейный поиск до обнаружения объекта ШАГ 2 Обойти все пиксели и объединять в области с учетом вида связанности ШАГ 3 Проверка конфликтной ситуации ШАГ 4 Поиск нового объекта и выполнение шага 2 В случае обнаружения конфликтной ситуации необходимо провести переразметку конфликтных областей переразметка происходит с учетом эквивалентностей областей

Алгоритм «Рекурсивная разметка связных областей» ч1 void Labeling(BIT* img[], int* labels[]) { // labels должна быть обнулена L = 1; for(y = 0; y < H; y++) for(x = 0; x < W; x++) { Fill(img, labels, x, y, L++); }

void Fill(BIT* img[], int* labels[], int x, int y, int L) { if( (labels[x][y] = = 0) && (img[x][y] = = 1) ) { labels[x][y] = L; if( x > 0 ) Fill(img, labels, x – 1, y, L); if( x < W - 1 ) Fill(img, labels, x + 1, y, L); if( y > 0 ) Fill(img, labels, x, y - 1, L); if( y < H - 1 ) Fill(img, labels, x, y + 1, L); } Алгоритм «Рекурсивная разметка связных областей» ч2

ОДНОПРОХОДНЫЙ АЛГОРИТМ ВЫДЕЛЕНИЯ ОБЛАСТЕЙ ШАГ 1 поиск фрагмента ШАГ 2 проверка связей маркировочным окном в указанном порядке ШАГ 3 запись связей в таблицу по возрастанию значения маркера ШАГ 4 проверка окрестности элемента и замещение одиночно-связанных фрагментов из таблицы ШАГ 5 расчет плотности распределения для фрагментов Пример маркировки фрагмента изображения

Разрастание регионов (Region growing) Простая идея – начиная с некоторого семени обходить пиксели и объединять в области пока выполняется условие однородности –Критерий однородности Гистограмма содержит не больше 1 значительного пика Отклонение любого пикселя от средней яркости < T avg Разница между соседними пикселями < T diff

if |I(A) – Cl avg (B)| > δ and |I(A) – Cl avg (C)| > δ - создаем новую область, присоединяем к ней пиксел A 1.if |I(A) – Cl avg (B)| δ xor |I(A) – Cl avg (C)| δ – добавить A к одной из областей 2.if |I(A) – Cl avg (B)| δ and |I(A) – Cl avg (C)| δ : 1.|Cl avg (B) - Cl avg (C)| δ – сливаем области B и C. 2.|Cl avg (B) - Cl avg (C)| > δ– добавляем пиксел A к тому классу, отклонение от которого минимально. I(A) – яркость пиксела A Cl avg (B) – средняя яркость области к которой принадлежит B Сканируем изображение сверху вниз, слева направо: Алгоритм разрастания регионов

Пример δ = Алгоритм разрастания регионов Пример Среднее: 1 Среднее: 1.125

Алгоритм разрастания регионов Пример Пример δ = 1

Метод разделения областей ШАГ 1 Всё изображение это одна область, поместить область в стек ШАГ 2 Пока стек не пуст ШАГ 2.1 Взять область S из стека ШАГ 2.2 Проверить область на однородность ШАГ 2.3 Если область неоднородна разделить ее, новые области поместить в стек ШАГ 2.4 Если область однородна область больше не трогаем

Метод разделения областей Правило разделения областей (квадродерево) Распространенный вариант – на 4 части, как квадродерево S1S1 S3S3 S4S4 S 21 S 22 S 23 S 24 S1S1 S3S3 S4S4 S 21 S 22 S 24 S 23 S S2S2 Просто реализовать, но границы получившихся областей вряд ли будут соответствовать границам объектов

Пример Алгоритм разбиения (split)

Первое разбиение Алгоритм разбиения (split)

Второе разбиение Алгоритм разбиения (split)

Третье разбиение Алгоритм разбиения (split)

Найти в гистограмме пики, разделить гистограмму по ним Для каждой части гистограммы найти связные компоненты – это будут новые области Реализовать сложнее, работает дольше Метод разделения областей Правило разделения областей (Анализ гистограмм)

Метод слияния областей ШАГ 1 каждый пиксель это отдельная область, поместить все области в стек ШАГ 2 Пока стек не пуст ШАГ 2.1 Взять область S из стека, для всех соседних областей S i : ШАГ 2.2 Проверить S=S U S i на однородность ШАГ 2.3 Если S однородна – Слить S и S i, S поместить в стек, S i из стека удалить, перейти на шаг 2 ШАГ 2.4 Если область не однородна Пробуем другого соседа

Алгоритм «фагоцита» Истаивание границ –Убирает слабые границы «Слабость границ» определяется по разности яркостей граничных пикселей S1S1 S2S2 клетка способная захватывать и переваривать посторонние тела

Алгоритм «фагоцита» S1S1 S2S2

Слить две области если: где P 1 и P 2 – периметры областей S 1 and S 2 Слить две области если:

Алгоритмы разбиения и слияния Недостатки: –Разбиение Может дать слишком много регионов Если использовать квадродерево, границы скорее всего будут неверны –Слияние Долго работает, если начинать с индивидуальных пикселей Вывод: –Нужен комбинированный метод!

Алгоритм разбиения/слияния (split and merge) Идея: –Сначала провести разбиение на небольшие однородные области Обычно используется принцип квадродерева –Затем слить между собой те из них, которые вместе не нарушат требование однородности Продолжать до тех пор, пока остаются регионы которые можно объединить

Слияние Алгоритм разбиения/слияния (split and merge)

Результат Алгоритм разбиения/слияния (split and merge)

Результат Сравнение разбиения/слияния с разрастанием регионов

Алгоритм водораздела (watershed) Идея метода: –Большие значения градиента соответствуют резким переходам на изображении –Рассмотрим абсолютную величину градиента как карту высот ландшафта –Там где резкие границы – получатся «стены» –Будем «лить воду» в «ямы» и искать получающиеся «озера»

Алгоритм водораздела Область водораздела, бассейн (catchment basin) : область в которой поток из всех точек «стекает» к одной общей точке Слева – профиль интенсивностей изображения, Справа – локальные минимумы определяют бассейны, локальные максимумы – линии водораздела.

Алгоритм водораздела Алгоритм, как и разбиение дает множество небольших регионов Очень чувствителен к шуму – ищет все локальные минимумы Градиент < 10 обращен в 0 Результат по данному градиенту Абс. величина градиента

Алгоритм «погружения» Алгоритм «погружения» (immersion) : Начнем с самых «глубоких» (темных) пикселей (они определят начальные бассейны) Для каждой яркости k: Для каждой связной компоненте пикселей яркости k: Если прилежит только к одному существующему бассейну Добавить компоненту к бассейну Если прилежит более чем к одному существующему бассейну Пометить как границу (водораздел) Иначе – создать новый бассейн Аналог – вода медленно поднимается, пока не погрузятся в нее водоразделы

Алгоритм tobogganing Идея: –Из каждого пикселя «спускаемся» в локальный минимум среди его соседей –Спускаемся до тех пор, пока есть куда спускаться –Пиксели «спустившиеся» в один минимум – одна область

Алгоритм tobogganing Из каждого пикселя «спускаемся» в локальный минимум среди его соседей Спускаемся до тех пор, пока есть куда спускаться Пиксели «спустившиеся» в один минимум – одна область

Алгоритм tobogganing Из каждого пикселя «спускаемся» в локальный минимум среди его соседей Спускаемся до тех пор, пока есть куда спускаться Пиксели «спустившиеся» в один минимум – одна область

Tobogganing и водораздел В зависимости от задачи можно анализировать –само изображение –абсолютную величину его градиента –distance transform изображения (в каждой точке хранится расстояние до ближайшей границы) –Часто генерируют слишком много регионов, как и разделение Требуется постобработка для слияния –В комбинации с distance transform хорошо для перекрывающихся регионов