Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 29
Текст из файла (страница 29)
Чтобы получить х, достаточно решить уравнение Поскольку квадратный корень — положительная функция, то генерируемые случайные величины будут всегда больше а, что требуется в определении функции Релея. Значит, равномерно распределенные случайные числа могут служить основой для генератора релеевских случайных чисел с заданными параметрами а и 6.
В МАТЮКАВ это результат легко обобщить, но массив случайных чисел й размеров М хЮ с помощью выражения » К = а + вс)гс(Ьв1ой(1 - тапй(М, 5)); где 1ой — это натуральный логарифм (см. З 3.2.2), а функция тапа генерирует равномерно распределенные случайные числа в интервале (О, 1). Если положить й в = 1, то получится скалярная случайная величина с релеевским распределением и с параметрами а и 6. П е....... = .+ лт;с — —.).....
„,.........,.. тора случайньчх чисел, поскольку в нем определяется, как вычислять требуемые случайные величины. В этом случае имеется простая формула для решения уравнения. Однако это не всегда возможно, и проблему можно сформулировать следующим образом: как получить уравнение генератора случайных чисел, выход которого хорошо приближает случайную величину с заданной функцией плотности вероятностей. В табл. 5.1 перечислены полезные случайные величины в свете нашего обсуждения. Для некоторых из них удается выписать формулу решения дня обратной функции распределения, например, для экспоненциального распределения или для функции распределения Релея.
В этих случаях имеется простая формула для выражения требуемых случайных чисел в терминах равномерных случайных чисел, как это проиллюстрировано в примере 5.1. В других случаях, как, например, в случае гауссовой или логарифмически нормальной плотности, такой простой формулы не существует. Тогда нужно искать альтернативный путь для реализации требуемой случайной величины.
Например, для случайной величины х с логарифмически нормальной плотностью можно воспользоваться тем фактом, что величина 1п(х) имеет гауссово распределение, и выписать выражение, приведенное в табл. 5.1, в терминах гауссовой случайной величины с нулевым средним и единичной дисперсией. И в других случаях бывает полезно переформулировать задачу для нахождения более легкого решения.
Например, можно Г4 а + Щ сь и ~ь ! м 2 3 м П и О х х х х о х О б х Ъ Г м о о ГЬ ГГ м м .ь а ,8 П а м«,8 П а ь И". ГЬ м ь и о Гь Т + О„' Д, с Ю 6 а СГ х ь П ь и и .О -~Ъ П ь ь Ю ь Е и И 'ь Гь Ф х П 1 х з ж Б а ГГ о л 5 Е к а х ГЬ Г о ГГ'Г м л ь ГГГ и о о ГЬ Ч ь м м ь и -~р 8 и ь а а о ь' ф х * 4 О а ПП х х ьй ГП 2 ГГГ х м и м~ л м и м х м О М ПГ ГЬ м ь м а а „.а й'. м ь и оГ П "-„ аТ ь о мха х + 4 Г4 м ЬП и о Е $ й х ь 3 % (~60 Г б.~ ь поквзатгь что случайные числа Эрланга с параметрами а и Ь можно построить, складывая 6 независимых случайных величин с экспоненциальным распределением, имеющих параметр а (см. [Ьеоп-Сагс1а, 1994)).
Генераторы случайных чисел, реализованные в мппоьве и перечисленные в табл. 5.1., играют важную роль при моделировании поведения случайного шума в приложениях обработки изображений. Мы уже видели пользу от использования равномерного распределения при генерации случайных чисел с заданной функцией распределения. Гауссов шум используется в качестве естественного приближения в тех случаях, когда сенсорные детекторы изображения работают на пороге чувствительности. Шум типа «соль и перец» возникает в устройствах с ошибочной коммутацией.
Размеры зерен на фотоэмульсии являются случайными величинами с логарифмически нормальным распределением. Шум Релея образуется при фиксации удаленных изображений, а экспоненциальный шум и шум Эрланга используется при описании искажений на изображениях, полученных с помощью лазерного излучения.
М-функция Апшо1ве2, которая будет рассматриваться позже, генерирует случайные числа, которые имеют функцию распределения из списка в табл. 5.1. Эта функция использует стандартную функцию тапс1, которая имеет следующий синтаксис: А = ташПМ, М). Эта функция генерирует массив размера МхИ, элементами которого служат равномерно распределенные случайные величины в интервале (О, 1). Если аргумент М отсутствует, то по умолчанию он приравнивается к М. Если опущены оба аргумента, то тап4 генерирует скалярную случайную величину, которая меняется при каждом новом вызове функции тап4. Аналогично, функция А = тапоп(М, И) строит массив размера Мхй с независимыми гауссовыми (нормальными) случайными величинами с нулевым средним и единичной дисперсией.
Если М отсутствует, то по умолчанию И = М. Если аргументов нет, то генерируется скалярная случайная величина. Функция Ашпо1ве2 использует функцию 11п4 из МАТЬАВ, которая имеет следующую синтаксические формы: 1 = 11пй(А) 1т, с) = 11пй(А) [г, с, ч] = 11пй(А), В первом случае в 1 записывается индексы массива А, которые обозначают ненулевые элементы.
Если таковые отсутствуют, то 11пй возвращает пустую матрицу. Вторая форма возвращает строку и столбец, состоящие из индексов элементов матрицы А с ненулевым содержимым, а в третьей форме также возвращаются ненулевые элементы А в виде отдельного вектор-столбца ч. В первой форме команды 11пд матрица А трактуется в формате А(:), т, е. 1 — это вектор-столбец. Такая форма очень удобна при обработке изображений. Например, чтобы найти множество всех пикселов, меньших 128, и присвоить им значение О, достаточно выполнить команды » 1 = 11пп(А < 128); » А(1) = О; Напомним, что логическая формула А < 128 возвращает матрицу, в которой 1-цы стоят там, где логическое условие выполнено и Π— там, где оно не выполне- но.
Чтобы присвоить значение 128 всем пикселам, принадлежащих замкнутому интервалу [64, 192[, можно записать » 1 = 11пб(А >= 64 А А <= 192); » А(1) = 128; УиисС1оп В = 1шпо1яе2(Суре, М, Н, а, Ь) '/1ММ01БЕ2 Оепегапея ал аггау о1 галбош пишЬегя н1СЬ ярес1г1ео РВР. % В = 1МИ01БЕ2(ТУРЕ, М, И, А, В) Еепегасея ал аггау, В, о1 я1яе '/ М-Ьу-М, вЬояе е1ешепСя аге галпош пишЬегя оХ СЬе ярес111еп ТУРЕ % нАСЬ рагашесегя А аи«1 В.
11 оп1у ТУРЕ Ая 1пс1ипео Ап СЬе % марис аг8шпепС 11яС, а я1п81е гал«дош пшпЬег о1 СЬе ярестг1ео '/ ТУРЕ апб беУаи1С рагашеСегя яЬовп Ье1ов 1я Еепегапеб. 11 оп1у '/ ТУРЕ, М, алб И аге ргон1оей, СЬе беУаи1С рагашеСегя яЬовп Ье1он % аге ияеп. 11 М = И = 1, 1МИ01БЕ2 Еепегасея а я1п81е галйош % пишЬег от СЬе ярес111е«1 ТУРЕ апб рагашесегя А апб В. % '/ Уа1гй на1иея Уог ТУРЕ апб рагашеСегя А апб В аге: % % дил11огшд '/ % 'Еаияя1ал' % Оп11огш галд1ош пшпЬегя 1п СЬе гпсегна1 (А, В).
ТЬе с)еУаи1С на1иея аге (О, 1). Оаияя1ап галбош пишЬегя нАСЬ шеап А апб япелоагй с)ен1аС1оп В. ТЬе беУаи1С на1иея аге А = О, В = 1. Первые две формы команды 11п«1 будут часто использоваться в дальнейшем. В отличие от 1пшо1яе, следующая 51-функция Апшо1ве2 порождает шумовую матрипу К размера Мхй, которая не нормируется. Другое значительное отличие от функции 1пшотве состоит в том, что выходом Ашпо1яе служит зашумленное изображение, а Апшо1яе2 порождает только шумовую матрицу. Пользователь должен сам задавать желаемые параметры шума.
Заметьте, что шумовая матрица, генерируемая по методу «соль и перец», принимает три возможных значения: О это «перец», 1 «соль», а 0.5 соответствует отсутствию шума. Эту матрицу необходимо еще обрабатывать для дальнейшего использования. Например, чтобы испортить изображение этим шумом, необходимо сначала найти [с помощью функции 11по) все координаты шума В, равные О, и присвоить соответствующим пикселам изображения самое малое значение (обычно это О). Затем следует найти все координаты шума В, равные 1д и присвоить соответствующим пикселам изображения самое болыпое допустимое значение (обычно зто 255 для 8-ми битовых изображений).
Эта процедура моделирует практическое воздействие шума «соль и перец» на изображение. ~~~~62 Глава 5. Восстановление изобра ений Яа1С ал6 реррег пишЬетв оХ ашр11Си6е 0 ч1СЬ ргоЬаЫ11Су Ра = А, ап6 ипр11Си6е 1 ю1СЬ ртоЬаЫ11Су РЬ = В. ТЬе 6е1аи1С ча1иев ате Ра = РЬ = А = В = 0.05. Моте СЬаС СЬе по1ве Ьав ча1иев 0 (юАСЬ ргоЬаЫ11Су Ра = А) ап6 1 (ч1СЬ ргоЬаЫ11Су РЬ = В), во вса11пЕ 1з песеввагу 1й ча1иев оСЬег СЬап 0 ап6 1 ате гее(и1те6.
ТЬе по1ве шасг1х В Ав азвАЕпе6 СЬгее ча1иев. 11 К(х, у) = О, СЬе по1ве аС (х, у) 1в реррег (ЫасЬ). П Е(х, у) = 1, СЬе по1ве ас (х, у) 1з ва1С (чЫСе). 11 В(х, у) 0.5, СЬеге 1в по по1ве авз1Епе6 Со соог61пасев (х, у). ЕоЕпотша1 пишЬегв и1СЬ охтвеС А ап6 вЬаре рагашеСет В. ТЬе 6еХаи1Св аге А = 1 ап6 В = 0.25. Вау1е1ЕЬ по1ве ч1СЬ рагашепетз А ап6 В. ТЬе 6е1аи1С ча1иев аге А = 0 ап6 В = 1. ЕхропепС1а1 гап6ош пишЬегв чАСЬ рагашесег А. ТЬе 6ейаи1С 1в А = 1. Ег1апЕ (Евшша) гап6ош пишЬегв ю1СЬ раташепегв А ап6 В. В шивС Ье а ровАСАче 1псеЕег. ТЬе 6ейаи1Св аге А = 2 ап6 В = 5.
Ет1апЕ гап6ош пишЬетв аге арргох1шапе6 ав СЬе виш ой В ехропепС1а1 гел6ош пишЬегв. Яес 6е1аи1С ча1иев. 2 'ва1С й реррег' 2 '/ '/ '/ '/ '/ '/ '/ '/ '/ '/ '/ '1оЕпотша1' Х '/ '/ 'гау1еАЕЬ' '/ Х 'ехропепС1а1' '/ У 'ег1апЕ' '/ '/ '/ '/ '/ 11 пвт51п == 1 а=О;Ь=1; М = 1; М = 1; е1зе11 пагЕгп == 3 а = 0; Ь = 1; еп6 '/ ВеЕ1п ргосевв1пЕ.