Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 31
Текст из файла (страница 31)
М д» [6~~9) Поскольку моменты нулевого и первого порядков равны, соответственно, 1 и О, вСаСшошепСв их игнорирует и присваивает н[1) = ш н н[1с) = дь при дн = 2, 3,..., и. Синтаксис имеет вид (см. приложение В): [и, впн] = вСаСшошепСе(р, и), где р — это вектор гистограммы, а и обозначает наибольший порядок моментов. Требуется, чтобы число компонентов вектора р равнялось 2в для класса изображения ийпСВ, 2ш для класса и1пС16, а также 2в или 2гв для класса бопЫе.
Выходной вектор и содержит нормированные моменты, вычисленные на основе приведения случайных величин к диапазону [О, 1]. Следовательно, все моменты будут также принадлежать этому интервалу. Вектор ппн содержит те же моменты, что и и, но в диапазоне исходных данных. Например, если 1епбСЬ[р) = 255 и н[1) = 0.5, то впн(1) = 127.5, что равно половине от диапазона [О, 255]. Часто бывает необходимо оценить параметры шума непосредственно по зашумленному изображению или по набору таких изображений. В этом случае следует выбрать на некотором изображении область, по возможности лишенную характерных черт, чтобы распределение яркости на ней было бы произведено главным образом шумом.
Для выбора такой интересующей области (В01, Ке51оп 01 1пгегевС) можно воспользоваться функцией го1ро1у, которая строит многоугольную область, Она имеет синтаксическую форму В = го1ро1у[1,с,г), где 1 — интересующее нас изображение, а с и г векторы, соответствующие координатам (по столбцам и строкам) последовательных вершин многоугольника (заметьте, что в начале идут координаты по столбцам). Выходом функции служит двоичный массив того же размера, что и 1, с единицами внутри интересующей области и с нулями вне ее. Изображение В используется в качестве маски для ограничения выполнения операций на выделенную область. Для интерактивного задания области Н01 можно использовать синтаксис В = го1ро1у(1).
В этом случае изображение 1 выводится на экран, и пользователю предлагается обозначить интересующую область с помощью мыши. Если параметр Х опущен, функция оперирует с последним изображением на экране. Действуя левой кнопкой мыши, строим последовательные вершины многоугольника. Нажимая клавиши Вас1сврасе или Ре1еСе, можно удалить вершину, выбранную на предыдущем шаге. Нажав левую кнопку мыши с одновременным удержанием клавиш ЯЫй, правую кнопку мыши или сделав двойной щелчок левой кнопкой, добавляем последнюю вершину, после чего выбранный многоугольник заполняется единицами.
Если нажать ЕпСег, то построение многоугольника завершается без добавления последней вершины. Чтобы получить бинарную маску и список вершин многоугольника, можно использовать конструкцию [В, с, г] = то1ро1у[. . .), ~~( ) 70 Глава б. Восстановление изображений где го1ро1у(... ) обозначает любой допустимый вид этой функции, а с и г— векторы координат (по столбцам и строкам) вершин многоугольника, как было описано раньше.
Такой формат особенно удобен при интерактивном использовании го1ро1у, так как он выдает информацию об области Н01, которую можно копировать и использовать в последующих программах. Следующая функция вычисляет гистограмму выбранной многоугольной области НО] на изображении, вершины которой заданы парой векторов с и г, как описано выше. 1ппсС1оп [р, пр1х] = Ыясго1(1, с, г) %Н1БТК01 СошриСев СЬе Ыясоягаш о1 ап К01 1п ап 1шаяе.
% [Р. МР1Х] = Н1ЯТК01(Р, С, К) сошрпСея СЬе Ыясоягэш, Р, о1 а % ро1уяопа1 гея1оп о1 1пСегеяС (К01) 1п 1шаяе Р. ТЬе ро1уяопа1 % негС1сея, нЫсЬ аге яресИ1ее) (яее)пепС1а11у) 1п нессогя С апй К, % гевресСАне1у. А11 ргхе1я о1 Р шпвС Ье >=О. Рагашесег МРТХ 1я СЬе % шнаЬег о1 РАхе1я Ап СЬе ро1унопа1 гебгоп. % СепегаСе СЬе Ыпагу шаяЬ 1шаяе. В = го1ро1у[1, с, г); % Сошрпсе СЬе Ыясоягаш о1 СЬе р1хе1я Ап СЬе К01. р = АшЬАяСИ[В)); % ОЬСа1п СЬе пшеЬег о1 р1хе1я 1п СЬе К01 11 гее)неясен 1п СЬе опСрпС. нй пагяоиС > 2 пр1х = яиш (В 0 ) ); епй . Пример 5.4. Оценивание параметров шума. На рис. 5.4, а) показано изучаемое изображение 1.
В этом примере мы воспользуемся представленными выше инструментами для определения типа шума и оценивания его параметров. На рис. 5.4, б) изображена маска В, построенная интерактивно командой » [В, с, г] = го1ро1у(1); Рис. 5.4, е) получен при выполнении команд пр1х] = Ь1ясго1(1, с, г); » 11япге, Ьаг(р, 1); Среднее значение и дисперсия области исходного изображения, накрываемой маской В, вычислены по формулам » [в, ппи] = ясасшошепся(Ь, 2); » 0.5794 0.0063 147.7430 410.9313 '(н172 Глава б.
Восстановление изображений 5.3. Восстановление в присутствии одного шума— пространственная фильтрация Если искажения вносятся в изображение исключительно шумом, то из модели 3 5.1 вытекает, что д(х,у) = Г(х,у) + е1(х,у). В этом случае методом удаления шума может служить пространственная фильтрация с использованием техники, описанной в Ц 3.4 и 3.5. В этом параграфе мы суммируем эти подходы и построим несколько пространственных фильтров для подавления шума.
Дополнительные детали, характеризующие эти фильтры, изложены в [Сопяа1ея, ЪЪ'осе)в, 2002). 5.3.1. Фильтры для пространственного шума В табл. 5.2 перечислены пространственные фильтры, которые будут рассмотрены в этом параграфе. В этой таблице Я „обозначает подизображение (область) размера тки на зашумленном изображении д. Нижний индекс у о обозначает координаты (х, у) центра подизображения. Через Г" (х, у) обозначается отклик фильтра (приближение изображения )') в точке (х, у). Линейные фильтры реализованы с помощью функции Аш111Сег, которая рассматривалась в 3 3.4. Медианный, минимальный и максимальный фильтры являются нелинейными фильтрами порядковых статистик.
Медианный фильтр можно непосредственно реализовать на базе функции шед111С2 из пакета 1РТ. Максимальный и минимальный фильтры можно реализовать с помощью более общей функции огс(111С2 для нахождения порядковых статистик, которая обсуждалась в 3 3.5.2. Мы построим функцию вр111С, которая совершает фильтрацию в пространственной области с помощью любого фильтра из табл. 5.2.
Обратите внимание на использование функции Аш11псошЬ (упомянутой в табл. 5.2) при вычислении линейной комбинации входных данных. Синтаксис этой функции имеет вид В = Аш11псошЬ(с1, А1, с2, А2, ..., СК, АК). Она реализует формулу В = с1еА1 а с2еА2 + ... + скеАК, где с1 это скалярные величины двойной точности, а А1 — числовые массивы одного класса и одинаковых размеров. Заметьте также, как в подфункции Вшеап можно включить и выключить функцию яагп1пя. В этом случае имеется возможность подавить предупреждение, которое выдает МАТ(.АВ, когда аргумент функции 1ок становится равен О. В общем случае, функцию иагп1пя можно использовать в любой программе. Ее базовый синтаксис имеет вид яагп1пя('шевваяе').
Эта функция ведет себя в точности, как и функция 61вр, за тем исключением, что ее можно включать и выключать командой яагп1пя оп или иагп1пя о11. 1ипссгоп 1 = вр111С(я, Суре, ш, и, рагашесег) Дз о.о. Восстановление в присутствии одного шума Ф 16 О. с х о Н Ф Ф М а Н о Ф Р. Ф Н х а х Ф И М х о В и х х х .о. ~4 ) Н с» Ф Е- -!г а И= о й он И~~ ох Е Ф ~! Н и ' Ф 'Н хп ЯФ Е Й и Н Р. х .Н х В„ х о Я Ф аа и П и 3 Я й Йг В Ф а Ф а $ х ао Ф х й ь О х Ф х Ф х о Ф х Ф ы Р. 8 Р.
о х о о а о 5 а Я . х х » ~М Я х „Н Ф И., о х '~ о ° М й Р. х о Я 4 х' о 9 6 2Ф а а й о и Р. 2 ь 4 х о Ц .8 б -' Р. Я о х а х х 4 Ы х о х о о ь » х Ф а х о н о а х х Я "х х » а $ Ф о х о НЙ о Ф Н и » о о 1 РФ . а о Е а и х х Я х .Я у Ф Я с х о о но о о и х оо,х х о .8 Р Ф Я с й 4 Ф о я х Ф ) Р, Ф охх 'и4 хх х х х он~од » я аа Ф »о х а „'- "Хх о х и Ж Ф Н' о ~~74 Г б.~ б В 'ашеап', М, И) >Кшеапэ, М, И) 'Ьшеал', М, М) 'сЬшевл', М, М, Ц) АгАСЬшеСАс шеап ШСег1пБ.
Сеошест1с шеап ШСег1пБ. Нагшопвс шеап 111Сег1пБ. СопсгаЬагшоп1с шеал 111Сег1пБ оХ огрех Ц. ТЬе беХап1С 1в Ц = 1.5. Мей1ап 111Сег1пБ, Мах ШСеггп М1п 111Сег1пБ. Мшвротпг 111Сег1пБ. А1рЬа-Сг1шшей шеап 111Сег1п Рагашетег )) шпяС Ье а поппеБа- С1че ечеп 1псеБег; АСв Йейап1С ча1пе гв () = 2. 'шес11ап', М, М) 'шах', М, И) 'ш1п', М, М) 'ш1йро1пС', М, М) 'агг1шшей', М, И, Р) %ЯРРТЬТ РегУогшв 1гпеаг ал6 поп11пеаг ярас1а1 Шсег1пБ. % Р = БРРХЬТ(0, ТУРЕ, М, М, РАНАМЕТЕК) рег1огшв враСАа1 111Сеггп % о1 1шаБе С пв1пБ а ТУРЕ 111Сег о1 в1хе М-Ьу-И.
Ча1Ы са11в Со % БРРТЬТ аге ав йо11очв: % % Р = ЯРРТЬТ(С, % Р = ЯРРТЬТ(Ц, % Р = БРРТЕТ(С, '/ Р = ЯРРТЕТ(С, % '/ '/ Р = БРРТЬТ(С, '/ Р = ЯРРТЬТ(С, % Р = ЯРРТЬТЯ. % Р = ЯРРТЬТ(С, '/ Р = ЯРРТЬТ(6, % % % у % ТЬе йеУаи1С на1иея чЬеп оп1у С апй ТУРЕ аге Апрпг аге М = И = 3, % Ц = 1.5, апМ () = 2, % Ргосеяв Апросе. 11 пагБ1п == 2 ш = 3; и = 3; Ц = 1.5; 6 = 2; е1ве11 паг51п == 5 Ц = рагашеСег; о = рагашетег; е1ве11 пагБ1п == 4 Ц = 1.5; 6 = 2; е1яе еггог('ИгопЕ ппшЬег ой 1прпся.'); епп '/ Ро СЬе 111Сег1пБ. явАСсЬ Суре саве 'ашеел' в = Уврес1а1('анегаБе', [ш и)); й = 1ш111Сег(Б, в, 'гер11саге'); саяе 'Бшеап' 1 = яшеап(Б, ш, п); саяе 'Ьшеап' 1 = Ьагшеэл(Б, ш, п); саве 'сЬшеап' = сЬагшеап(Б, ш, и, Ц); саве 'ше51ап' 1 = шеог11С2(Б, [ш и), 'вушшесггс'); саве 'шах' ( 17б Г..анп 5. Погстанов.и~~и~ июбрзн ~~~иь ~ ~от 1с = 1:б/2 : "Ф ".". '> ,9 'О 1ззззз Пример 5.5.
Использование функции ярт11С. На рис. 5.5, а) приведено изображение класса и1пС8, испорченное только шумом «перец» с вероятностью 0.1. Это изображение построено следующими командами 1т, как всегда, обозначает исходное изображение, которое уже воспроизводилось на рис. 3.18, аЯ: » (М, М) = язге(С); » я = 1шпойяе2('яа1С й рарег', М, М, 0.1, 0); » с = айяд(Я == О); » яр=С'; » яр(с) = 0; Рис.