Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 44
Текст из файла (страница 44)
табл. 3.4). После того, как фильтр сгенерирован, процедура фильтрации совершается функцией 1ш111вег, которая вводилась в 3 3.4.1. В идейном плане сглаживание цветных НСВ изображений, скажем, 1с линейным пространственным фильтром, состоит из следующих шагов. 1. Выделить три компоненты изображения: » Ж = 1с(:,:,1); 10 = 1с(:,:,2); ХВ = 1с(:,:,3); 2.
Отфильтровать отдельно каждую компоненту. Например, пусть и обозначает сглаживающий фильтр, построенный командой Харес1а1, тогда красная компонента сглаживается следующим образом: » ХВ 111сегей = 1шг11сег(гй, и); и аналогично обрабатываются остальные компоненты изображения. 3. Реконструировать отфильтрованное НСВ изображение: » 1с 111Сегей = сае(3, Ж 111тегеа, 10 111тегеа, 1В 111гегей); Однако мы можем совершать линейную фильтрацию прямо НОВ изображений МАТЮКАВ с помощью того же синтаксиса, что и при обработке монохромных изображений, что позволяет объединить описанные выше три шага в один: » 1с 111сегед = 1шг11сег(гс, и); Пример 6.8. Сглаживание цветных изображений.
На рис. 6.19, а) (стр. 232) дано НСВ изображение размерами 1197х1197, а на рис. 6.19 с б) по г) — компоненты НСВ этого изображения, извлеченные с помощью описанной выше процедуры. На рис. 6.20 (стр. 232) с а) по в приведены три компоненты НЯ1 изображения на рис. 6.19, а), построенные с помощью функции г8Ь2Ьв1. Рис. 6.20, а) представляет результат сглаживания рис.
6.19, а) с помощью функции 1ш111сег с опцией 'гер11сае' и фильтром 'ачегаяе' размерами 25х25. б... б . ф б 2~Ю >) Ь = г62Ьв1(1с); » Н = Ь(:, ".,1); Я = Ь(:,:,2); 1 = Ь(:,:,3); )> я = 1врес1а1(баббетайеб, 25); » 1 111сегей = 1Ш111сег(1, я, 'гер11сае'); » Ь = сах(3, Н, Я, 1 111хегей); » 1 = Ьв12тЯЬ(Ь); )) Х = ш1п(1, 1); % НСВ 1шабеа шпет Ьане бба1пев 1п сЬе гапбе 10, 1). )) 1швЬОУ(т) Ясно, что результаты фильтрации существенно различаются. Например, кроме меньшего размытия, можно заметить на изображении б) зеленые обводы по верхним границам лепестков, чего нет на рис. а). Причина этого явления заключается в том, что компоненты цветового тона и насыщенности не изменялись, в то время как перепады компоненты интенсивности были существенно сглажены.
Может покззаться правильным сделать сглаживание по всем трем компонентам с помощью одного и того же фильтра. Однако в такой процедуре существенно изменятся соотношения между величинами цветового тона и насыщенности, что дает ложные цвета, как это видно на рис. 6.21, е). Общее правило таково: чем болыпе размер маски, тем болыпе разница между результатами фильтрации компонент НСВ и компоненты интенсивности НЯ1 эквивалентного изображения 22 6.5.2. Повышение резкости цветных изображений Повышение резкости цветных НОВ изображений с помощью линейного пространственного фильтра выполняется теми же процедурами, что и в предыдущем параграфе, но с использованием фильтра, повышающего резкость. В данном параграфе этот метод демонстрируется на примере лапласиана (см. 5 5.5.Ц.
Из векторного анализа известно, что лапласиан вектора определяется как вектор, компоненты которого равны лапласиану от соответствующих скалярных компонент входного вектора. В цветовом пространстве НОВ лапласиан от вектора с [см. 3 6.3) равен 27~[В(х у)] ~7'[С(х, у)] '(71[В[х, у)] '7~[с(х, у)] = Как и в предыдущем параграфе, эта формула означает, что лапласиан от цветно- го изображения можно находить с помощью вычисления лапласиана от каждой отдельной цветовой компоненты. Усредняющий фильтр является достаточно большим для достижения заметного эффекта размытия. Такой размер фильтра был выбран для того, чтобы продемонстрировать равнину между сглаживанием в пространстве НОВ и попыткой достигнуть аналогичный результат, используя только компоненту интенсивности, которая получается после конвертации изображения в цветовое пространство Н51.
Рис. 6.21, б) (стр. 233) был получен с помощью команд; ь'46 Г 6.«б б б Пример 6.9. Повышение резкости цветных изобраокеиивс На рис. 6.22, а) [стр. 233) приведен слегка размытый вариант ЬХ изображения на рис. 6.19, а), полученного усредняющим фильтром размерами 5х 5. Чтобы повысить резкость этого изображения, можно воспользоваться маской фильтра Лапласа » 1аршавй = ~1 1 1; 1 -8 1; 1 1 1]; Затем, как и в примере 3.9, улучшенное изображение вычисляется и отображается на дисплее командами » 1еп = 1швиЬсгассИЬ, 1ш111сег(ХЬ, 1аршаак, 'гер11сасе')); » 1шаЬои(Хеп) Здесь два необходимых шага обработки выполнены в одной команде.
Как и в предыдущем параграфе, НСВ изображение обрабатывалось как монохромное изображение [т. е. с той же формой вызова) при исполнении команды 1ш111тег. На рис. 6.22, б) показан результат. Обратите внимание на заметный эффект повышения резкости отдельных деталей, например, капелек воды, прожилок листьев,желтого центра цветка и зеленой травы на заднем плане. о 6.6. Обработка в векторном пространстве РОВ напрямую Как отмечалось в 3 6.3, имеются случаи, когда раздельная обработка цветовых плоскостей не эквивалентна прямой работе в векторном пространстве НОВ. Это демонстрируется в данном параграфе на примере двух важных приложений: обнаружение контуров на цветных изображениях и сегментация областей.
6.6.1. Обнаружение контуров на цветных изображениях с помощью градиента Градиентом двумерной функции ) [х, у) называется следующий вектор: Модуль (длина) этого вектора равен ~Пу)[ = к(С~У) = [С' + С']'~' = [(3))3х)' + [3))Ы'['~'. Часто эту величину можно аппроксимировать с помощью суммы абсолютных величин ['УУ[ = [С*1+ 1С,1. Такое приближение позволяет избежать возведения в квадрат и извлечения квадратного корня, но при этом оно ведет себя как производная (т.е.
оно равно нулю на областях с постоянным цветом пикселов, и его величина пропорциональна степени изменения цвета на неоднородных областях). Общепринято называть модуль градиента просто «градиентом». .б. Об б ббб 2~Ю Основное свойство вектора-градиента состоит в том, что он направлен в сторону максимального роста ( в точке с координатами (х, у). Угол этого направления равен Производные принято аппроксимировать разностями значений пикселов в малой окрестности изображения. На рис.
6.23, а) (стр. 233) показана окрестность размерами 3 х3, где буквы г обозначают значения пикселов. Приближение частной производной в (вертикальном) направлении х по отно4пению к центральной точке окрестности (т. е. гь) определяется разностной формулой С = (гт + 2зв + зэ) — (з4 + 2зг + зз). Аналогично, частная производная по направлению у приближается разностным выражением С„= (зз + 2зе + вэ) — (г4 + 2за + гт).
Обе эти величины легко вычисляются во всех точках изображения с помощью свертки (функция пЫ11тег) изображения с двумя масками, приведенными на рис. 6.23, б) и е). После этого приближение градиентного изображения получается сложением абсолютных величин двух фильтрованных изображений. Указанные выше маски являются масками Собела, приведенными в табл. 3.4, которые строятся с помощью функции 1врес1а1. Описанный выше метод вычисления градиента часто используется в задачах обнаружениях контуров на полутоновых изображениях, которые будут подробно разбираться в гл.
10. В данный момент мы интересуемся вычислением градиента в цветовом ВСВ пространстве. Однако приведенный метод применим только для двумерных пространств, и его нельзя распространить на болыпие размерности. Остается только подход, основанный на вычислении градиента для каждой цветовой компоненты изображения и сложении этих градиентов. К сожалению, как скоро будет видно, такой путь не всегда приводит к ре4пению задачи обнаружения контуров на цветных ВСВ изображениях. Итак, проблема прежде всего заключается в том, чтобы определить градиент (модуль и направление) вектора с, заданного в 3 6.3.
Приведем далее некоторый вариант распространения понятия градиента на вектор-функции. Напомним, что для скалярной функции ) (х, у) вектор градиента указывает в направлении максимального роста функции ) в точке с координатами (х, у). Пусть г, я и Ь вЂ” единичные векторы, направленные вдоль осей В, С и В цветового пространства ВСВ (см. рис. 6.2). Зададим векторы дЛ дС дВ и = — г+ — и+ — Ь дх дх дх дй дС дВ ч = — г+ — я+ — Ь. ду ду ду (241 Г О.
Об б б Ю Пусть следующие величины д, д„„и д „задаются с помощью скалярных про- изведений этих векторов: [дВ 2 д, =п.п=п п=1 — + 1дх т [дВ д„„=ч ч=ч ч=1 — + 1ду дС дВ + дх дх дС д — + ду ду дЯ дВ дС дС дВ дВ д,„=п ч=п ч= — — + — — + — —. дх ду дх ду дх ду Слепует помнить, что величины В, С и В, а, следовательно, и все я являются функциями от х и у.
С помощью введенных обозначений можно показать (см. [Р1 Еепхо, 1986]), что угол направления максимального изменения (роста и убывания) вектора с(х, у) как функции (х, у) удовлетворяет уравнению 1820 = 2д (д** — д ) а величина скорости изменения (т. е.
модуль градиента) в направлении этого угла 0 задается выражением Г1 1 1!г Еэ(х, у) = 1 — [(д + дээ) + (д — дээ) сов 20 + 2д э э1п 20]1 '(2 (ЧО, А, РРС) = со1огйгао(т, Т) Напомним, что 0(х, у) и Гэ(х, у) являются изображениями, размеры которых совпадают с размерами входного изображения. Элементами 0(х, у) являются углы градиентов в каждой точке исходного изображения, а Га(х, у) — модуль этого градиента. Заметим, что 18(а) = 18(а х я), поэтому если до является решением уравнения с 18, то и величина до + я/2 также является его решением.
Кроме того, Еа(х, у) = Еэ+~(х, у), т. е. функцию Рю достаточно вычислять лишь для тех величин 0, которые расположены в полуоткрытом интервале [О, л). Тот факт, что уравнения для 0 имеет два решения, которые различаются на 90', означает, что с каждой точкой (х, у) изображения связаны два направления, расположенные ортогонально друг к другу. Вдоль одного из этих направлений скорость изменения функции Г максимальна, а вдоль другого — минимальна, поэтому окончательный результат получается выбором максимума из этих двух чисел в каждой точке изображения. Вывод этих формул занимает много места, но мало добавляет к пониманию основных целей рассматриваемого предмета. Заинтересованный читатель может найти весьма подробное изложение этого материала в работе [В1 Еепяо, 1986). Частные производные, необходимые при решении приведенных выше уравнений, можно вычислять, например, с помощью операторов Собела, которые упоминались выше.
Следующая функция реализует вычисление градиента цветного ВСВ изображения (см. программный код в приложении В): б.б. О~Ю «ЛОВ 24~~9) где Т вЂ” это ВСВ изображение, Т -- порог (необязательный параметр) в интервале (О, 1] (по умолчанию равен О); ЧС вЂ” модуль ВСВ градиента Гв(х,у); А— это матрица углов о(х, у) в радианах; а РРС вЂ” это градиент, полученный сложением двумерных градиентов отдельных цветовых плоскостей (вычисляется для сравнения результатов). Эти последние градиенты равны, Т7Л(х, у), иС(х, у) и -т(х, у), где оператор Т~ определялся ранее в этом параграфе.