Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 76
Текст из файла (страница 76)
д д д 43~~3) / ивет. 1Сз пупсах Аз '/ % РЬАЯ = РНЕВТСАТЕ(ВЕСТОН) чЫсЬ шизС гесигп ТНЯЕ 11 СЬе рахе1з % 1п НЕ010М заСАз1у СЬе ргед11сасе бе11пей Ьу СЬе соде 1п СЬе % ХипсС1оп; оСЬегч1зе, СЬе на1ие о1 РЬАЯ шизС Ье РАЬЯЕ. '/ % ТЬе 1о11оч1пЯ з1шр1е ехашр1е оХ 1ипсС1оп РНЕВТСАТЕ 1з изей 1п '/ Ехашр1е 10.9 оХ СЬе Ьоох. 1С зесз РЬАС Со ТКИ 1Х СЬе % хпСепз1С1ез о1 СЬе РАхе1з хп НЕ010М Ьане а зсапд1аго йен1аС1оп % СЬаС ехсеейз 10, апд1 СЬе1г шеап 1пСепз1Су Аз Ьесчееп 0 апй 125.
% ОСЬегч1зе РЬАС Аз зеС Со Ха1зе. % % ХипсС(оп 11аЕ = рге61сасе(геЕ1оп) % зб = зсд)2(геЕ1оп); % ш = шеап2(гея1оп); % 11аЕ = (зд1 > 10) й (ш > О) й (ш ( 125); % Рай АшаЕе ч1СЬ пегое Со Еиагапсее СЬаС 1ипсС1оп осбесошр ч111 % зр11С геЕ[опз оочп Со з1хе 1-Ьу-1.
Ц = 2"пехсроч2(шах(з1хеИ))); [М, М) = з1хеИ); 1 = райаггауИ, [0 — М, 0 — М), 'розС'); '/ Рег1огш зр11СС1пЯ 11гзС. Я = НСйесошрИ, Фзр11С Сезс, ш1пд11ш, Хип); % Моч шегЯе Ьу 1ооК1пЕ аС еасЬ оиайгеЕ1оп апб зеСС1пЕ а11 АСз % е1ешепсз Со 1 И СЬе ЫосК заС1з11ез СЬе ргео1сасе. % ЯеС СЬе з1хе оХ СЬе 1агЕезС ЫосК, Узе Хи11 Ьесаизе Я 1з зрагзе. 1лпах = йи11(шах(Я(:))); % Яес СЬе оисриС АшаЕе АЫСАа11у Со а11 хегоз. ТЬе МАНКЕН аггау Аз % изей 1асег Со езсаЫ1зЬ соппесС1н1Су.
Е = хегоз(з1хеИ)); МАНКЕН = хегоз (зме И ) ); % ВеЕ1п СЬе шегЯ1пЕ зсаЕе. 1от К = 1:(лпах [на1з, г, с] = НСЕеСЫНИ, Я, К); И "1вешрсу(на1з) % СЬесЬ сЬе ргед)1сасе Хог еасЬ о1 СЬе геЕ1опз % о1 з1хе К-Ьу-К ч1СЬ соог61пасез ЯАнеп Ьу несСогз '/ г апй с. Хог 1 = 1: 1епЯСЬ(г) х1оч = г(1); у1оч = с(1); хЬАЕЬ = х1оч + К вЂ” 1; уЬ1ЕЬ = У1оч + К вЂ” 1; гея1оп = 1(х1оч:хЫЕЬ, у1оч:уЫЕЬ); 11аЕ = 1ена1Иип, геЕ1оп); 11 11аЕ ц(х1оч:хЫЕЬ, у1оч:уЫЕЬ) = 1; МАНКЕН(х1оч, у1оч) = 1; («с«о ° «сепд еш1 епд еш1 % Р1па11у, оЬса1п еасЬ соппессед теБ1оп апд 1аЬе1 11 чтсЬ а % 01ттетепт 1псеБет ча1ие ив1пБ йшсс1оп Ьч1аЬе1.
Б = Ьч1аЬе1(1штесопвттист(МАНЕЕВ, Б)); % Стор апд ех1с Б = Е(1:М, 1:Н); %- — I йшсС1оп ч = вр111 Севт(В, ш1пд1ш, 1ип) % ТН1Б РСНСТ10Н 1Я РАНТ ОР РННСТ10Н ЯР11Т-МЕВСЕ. 1Т ВЕТЕВМ1НЕБ % ННЕТНЕВ 00АВВЕС10НБ АВЕ ЯРЕ1Т. ТЬе Хипсс1оп теситпв 1п ч % 1оБ1са1 1в (ТВОЕ) 1от ьЬе Ыос)св сЬас вЬои10 Ье вр111 апд % 1оБ1са1 Ов (РАЬЯЕ) 1от СЬове СЬат вЬои10 пот. % ЦиадтеБ1оп В, развед Ьу с(сдесошр, 1в сЬе ситтепс десошров1с1оп о1 % сЬе 1шаЕе 1псо Ь ЫосКв оХ в1хе ш-Ьу-ш. % К Ав сЬе пишЬет о1 теБ1опв тп В ас сЬАв ро1пс 1п $Ье ртоседите. В = в1ве(В, 3); % РетХотш ФЬе вр111 Сент оп еасЬ Ыос)с.
11 СЬе ртед1сате Хипст1оп % (Тип) тетитпв ТВОЕ, СЬе теБ1оп 1в вр11С, во че вет СЬе аррторт1ате % е1ешепб о1 ч Со ТЕСЕ. Е1ве, СЬе аррторт1ате е1ешепт о1 ч Ав вес Со % РАБАНЕ. ч(1:Н) = Ха1ве; 1от 1 = 1гй яиадтеБ1оп = В(:, :, 1); 11 в1хе(с(иадтеБ1оп, 1) <= ш1пд1ш ч(1) = 1а1ве; сопс1пие еш1 11аБ = 1еча1(Хии, аиадтеБ1оп); 11 11аБ ч(1) = стае; епд епа Пример 10.9. Сегментация изображения методом разделения и слияния.
На рис. 10.1Т, а) показан снимок в рентгеновском диапазоне так называемой Петли Лебедяб. Изображение имеет размеры 256 х 256 пикселов. Целью зтого примера является выделение из этого изображения «кольца» менее плотной материи, которая окружает плотную центральную часть. Интересующая нас область имеет несколько очевидных характеристик, которые могут помочь при сегментации.
Во-первых, данные имеют случайный характер, т.е. их стандартное отклонение яркости будет больше стандартного отклонения фона (равного О) и стандартного Петля Лебедя представляет собой ударную волну от сверхновой в космосе, которая взорвалась 20000 лет назад в созвезднн Лебедя, 1'а~иеи аай ~я г а аииа..'и аи ~»,:а~и ~ 435)~~~ и~к «па иия йо и пи~й яркой Иии ~ ри и иой <н им ии. Лиа иа и и~о, < р оии ~ ииа и1ии и ° Х а ни .
~'~ л он гн~цин оино61 оооан нл1 иод~ рп ~дн. о 43~7~~~ Пример 10.10. (<. ,линожция дноичноло инооунлннтнон но нодцно~дочи ~ л олооио ю (438 Глава !а Сегментация иэобрансений соответствуют водосборным бассейнам, а нулевые значения обозначают пикселы линий водоразделов. » яс= я; » 0 = Ьийгвь(бс) „ » 1. = иатегвЬебб-0); » и=1.==0; На рис. 10.20, б) и в), приведено негативное изображение и его преобразование расстоянием. Поскольку нулевые значения в Ь обозначают линии водоразделов, в последней командной строке строит двоичное изображение я, выделяющее только эти пикселы.
Соответствующая картина водоразделов приведена на рис. 10.20, г). Наконец, логическое Аг)1) исходного двоичного изображения с дополнением к и дает полную сегментацию, которая показана на рис. 10.20, д). » 62=ба я; Заметим, что некоторые объекты на рис. 10.20, д) разделены неправильно. Такое явление называется избыточной сегментацией, которая часто проявляется при использовании метода сегментации по водоразделам. В следующих двух параграфах рассматриваются различные подходы, позволяющие преодолеть эту трудность.П 10.5.2. Сегментация по водоразделам с помощью градиентов Модуль градиента часто используется при предварительной обработке полутоновых изображений перед сегментацией по водоразделам.
Пикселы изображения градиента с большими значениями располагаются вблизи границ объектов, а остальным участкам соответствуют нулевые значения пикселов. В идеале, выполняя затем преобразование водораздела, можно получить линии водоразделов вдоль границ объектов. В следующем примере иллюстрируется этот подход.
Пример 10.11. Сегменгпация полутонового иэображения с помощью градиента и преобразования по водоразделу. На рис. 10.21, а) приведено изображение 1, которое содержит несколько затемненных сгустков или пятен. Мы начнем с вычисления модуля градиента, используя или метод линейной фильтрации, описанный в э 10.1, или применяя морфологический градиент, подобно тому, как это делалось в э 9.6.1. » Ь = 1врес1а1('воЬе1'); » 1с1 = бопЬ1еИ); » я = в~)гс(1шХ11сег(Ы, ь, 'гер11сасе') . 2 + 1шг11ьегИ6, Ь', 'гер11сате') . 2); Рис.
10.21, б) показывает изображение модуля градиента я. Затем мы вычисляем преобразование по водоразделам от градиента и находим границы водоразделов. » 1. = иасегвьеб(я) » их=1.==0; ~4Ю Ю О. С б 10.5.3. Использование маркеров при сегментации по водоразделам Непосредственное применение алгоритма сегментации по водоразделам в том виде, как описывалось в предыдущем параграфе, обычно приводит к избыточной сегментации, вызванной шумом или другими локальными неоднородностями на градиентном изображении. Избыточная сегментация может быть настолько значительной. что сделает результат обработки практически бесполезным.
В контексте нашего обсуждения это означает огромное число областей, выделенных при сегментации. Практическое решение этой проблемы состоит в том, чтобы ограничить допустимое число областей путем включения в состав процедуры шага предварительной обработки, служащего для привнесения добавочной информации в процедуру сегментации. Подход, применяемый для управления избыточной сегментацией, основан на идее маркеров. Маркер представляет собой связную компоненту, принадлежащую изображению. Будем различать внутренние маркеры, относящиеся к интересующим нас объектам, и внешние маркеры, соответствующие фону изображения.
Затем эти маркеры используются для подправления градиентного изображения при выполнении процедуры, описанной в примере 10.12, Разработаны различные методы для построения внутренних и внешних маркеров, многие из которых используют линейную или нелинейную фильтрацию, а также морфологическую обработку, описанную в предыдущих главах. Какой метод выбрать, зависит в высокой степени от природы конкретных изображений, которые будут обрабатываться данной программой. Пример 10.12.
Иллюстрация использования маркеров при сегментации по водоразделам. В этом примере рассматривается сегментация, контролируемая маркерами, которая применяется к изображению гели электрофорсза на рис. 10.22, а). Сначала приведем результат, который получается преобразованием водораздела от градиентного изображения без предварительной обработки. » Ь = уврес1а1('воЬе1'); » та = аопЬ1е(1); )> я = вс(гь(1ш111Сег(1с(, Ь, 'гер11саье') ."2 + 1ш111ьег(га, Ь', 'гер11сасе') ."2); » ь = яасегвьеа(я); >) вг=Ь==О; Резулыат дан на рис. 10.22, б), на котором наблюдается избыточная сегментация, причина которой заключается в большом числе локальных минимумов. Функция 1шгеа1опа1шйп определяет все локальные минимумы изображения.
Она вызывается в виде гш = 1шгея1опа1ш1п(1), где 1 это полутоновое изображение, а гш обозначает двоичное изображение, в котором единицей отмечают положения локальных минимумов. Мы можем проверить функцию 1шгея1опа1ш1п на градиентном изображении, чтобы понять, почему функция яаьегвЬеа порождает такие маленькие водосборные бассейны: О. С б д д»Д » гш = 1шгея1опа1ш1п(я); Большинство локальных минимумов, показанных на рис. 10.22, е), являются очень мелкими. Они отображают маленькие детали, которые не играют роли в задаче сегментации. Чтобы исключить такие дополнительные минимумы, используется функция из 1РТ 1шехСепоеош1п,которая находит «низкие» пятна на изображении, лежащие глубже некоторого заданного порогового уровня по сравнению с их ближайшим окружением.
(См. (Бой)е, 2003), где детально рассматривается преобразование расширенного миниму»«а и связанные с ним операции.) Эта функция имеет форму вызова Сш = 1шехсепоеош1п(Х, й), где Х вЂ” это полутоновое изображение, и — пороговый уровень, а Сш обозначает двоичное изображение, на котором пикселы переднего плана отмечают положения глубоких минимумов. Теперь можно применить функцию 1шехсепйейш1п, которая задаст наше множество внутренних маркеров: » 1ш = 1шехсепдеош1п(1, 2); » 11ш=1; » 11ш(1ш) = 175; Последние две строки помещают положения расширенного множества минимумов в виде сероватых пятен на исходное изображение (см. рис, 10.22, гЯ. Видно, что полученные пятна хорошо «отмечают» объекты, которые мы желаем сегментировать.