Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 7.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
32.02 Mб
Скачать

Реконструкция

Рисунок 28 – Полутоновая морфологическая реконструкция в случае одного измерения. а) Кривые маски (сверху) и маркера. б) Итеративное вычисление при реконструкции. в) Результат реконструкции (черная кривая)

Морфологическая реконструкция полутоновых изображений определяется с помощью итеративной процедуры. Рис. 28 показывает, как это преобразование работает в одномерном случае. Верхняя кривая на рис. 28а) является маской, а нижняя (серая) кривая служит маркером. В этом примере маркер построен простым вычитанием некоторой константы из маски, однако в общем случае любой сигнал может служить маркером при условии, что ни одно из его значений не превосходит соответствующей величины маски. Каждая итерация процедуры реконструкции размазыавет пики на кривой-маркере, пока они усиливаются снизу кривой-маской [см. рис. 28б)].

Окончательный результат реконструкции показан на рис. 28в). Заметьте, что два малых пика исчезли на реконструкции, в то время как два высоких остались, но они стали ниже. Если маркерное изображение получается путем вычитания константы h из изображения-маски, то такая реконструкция называется преобразованием h-минимума. Преобразование h-минимума выполняется в IPT функцией imhmin. Она позволяет удалять малые локальные пики.

Другая полезная техника реконструкции выполняется процедурой размыкание реконструкцией, при которой исходное изображение сначала подвергается эрозии, как при обычном морфологическом размыкании. Затем, однако, вместо того, чтобы применять замыкание, полученное изображение используется в качестве маркера при выполнении реконструкции. А в качестве маски используется само исходное изображение. На рис. 9.29, а) показан пример размыкания реконструкцией, полученный после выполнения команд

>> f = imread ( ‘ plugs. jpg ’ ) ;

>> se = strel ( ‘ disk ’ , 5 ) ;

>> fe = imerode ( f , se ) ;

>> fobr = imreconstruct ( fe , f ) ;

Рисунок 29 – а) Размыкание реконструкцией. б) Размыкание реконструкцией, после которого выполняется замыкание реконструкцией.

Реконструкцию можно применять для дальнейшей подчистки изображения fobr, применяя так называемую технику замыкания реконструкцией. Замыкание реконструкцией состоит из взятия дополнительного изображения, выполнения размыкания реконструкцией и вычисления вновь дополнения. Эти шаги совершаются командами:

>> fobrc = imcomplement ( fobr ) ;

>> fobrce = imerode ( fobrc , se ) ;

>> fobrcbr = imcomplement ( imreconstruct ( fobrce , fobrc ) ) ;

На рис. 29б) показан результат размыкания реконструкцией, за которым применено замыкание реконструкцией. Сравните его с результатами применения фильтра размыкания-замыкания и альтернативного последоватнльного фильтра на рис. 25.

Пример 12. Использование реконструкции для удаления сложного фона изображения.

Задача полутоновой реконструкции заключается в выделении текстовых символов на изображении кнопок калькулятора, приведенного на рис. 30а). Первый шаг состоит в удалении линий горизонтальных отблесков наверху каждой кнопки. Для этого мы воспользуемся тем фактом, что эти отблески длиннее, чем любой текстовый символ изображения. Мы выполняем размыкание реконструкцией, используя структурообразующий элемент, представляющий длинный горизонтальный отрезок:

>> f = imread ( ‘calculator. jpg’);

>> f_obr = imreconstruct ( imerode ( f , ones ( 1 , 71 ) ) , f ) ;

>> f_o = imopen ( f , ones ( 1 , 71 ) ) ;

Результат размыкания реконструкцией показан на рис. 30б). Для сравнения на рис. 30в) приведен результат стандартного размыкания (f_o). Размыкание реконструкцией лучше извлекает фон между соседними кнопками по горизонтали. Процесс вычитания результата размыкания реконструкцией из исходного изображения называется преобразованием «верх шляпы» реконструкцией, и он показан на рис. 30г)

Рисунок 30 – Применение полутоновой реконструкции. а) Исходное изображение. б) Размыкание реконструкцией. в) Размыкание. г) «Верх шляпы» реконструкцией. д) «Верх шляпы». е) Размыкание реконструкцией г) с использованием горизонтального отрезка. ж) Дилатация е) с использованием горизонтального отрезка. з) Окончательный результат реконструкции

>> f_thr = imsubtract ( f , f_obr );

>> f_th = imsubtract ( f , f_o );

На рис. 30д) дан результат обычной операции «верх шляпы» (т.е. изображение f_th).

Теперь мы удалим линии вертикальных отблесков на правой стороне каждой кнопки на рис. 30г). Для этого мы воспользуемся размыканием реконструкцией с элементом, который есть короткий горизонтальный отрезок:

>> g_obr = imreconstruct ( imerode ( f_thr , ones ( 1 , 11 ) ) , f_thr ) ;

На полученном изображении [см. рис. 30е)] вертикальные отблески исчезли. Однако это же случилось с символами, у которых имеются тонкие вертикальные черточки, например, пропала косая черта у символа процента «%», и исчезла вся буква «I» в слове ASIN. Тогда мы воспользуемся тем обстоятельством, что буквы с удаленными по ошибке деталями будут близки к другим символам, если сначала выполнить дилатацию [рис. 30ж)],

>> g_obrd = imdilate ( g_obr , ones ( 1 , 21 ) ) ;

а затем уже совершить окончательную реконструкцию с изображением f_thr в качестве маски и min (g_obrd) в качестве маркера:

>> f2 = imreconstruct ( min ( g_obrd , f_thr ) , f_thr ) ;

На рис. 30а) приведен окончательный результат. Заметим, что на этом изображении успешно удалены все тени на фоне изображения и все отблески на кнопках.