Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 68
Текст из файла (страница 68)
Например, следующий вызов функции 11пй возвращает индексы строк и столбцов всех пикселов, принадлежащих третьему объекту: » [г, с) = 11шН1 == 3); Функция шеап с выходами г и с вычисляет центр масс этого объекта'. » гЬаг = шеэп[г); » сЬаг = швал[с); Для нахождения центров масс всех объектов изображения можно воспользоваться циклом. Чтобы сделать центры масс объектов видимыми на изображении, мы их обозначим символом «*» белого цвета, который разместим в центре черного кружка.
Для этого выполним слелуюпзую серию команд: » АшвЬои(1) » Ьо1а оп 7, Яо 1ахег р1охпйп8 сошшвпс(в р1оп оп Сор оХ СЬе Ашабе. » 1ог Ы = 1:и [г, с) = 11п(1(Ь == 11); Если А является вектором, то шева(А) вычисляет среднее значение его элементов. Если А— матрица, то шеэв(А) трактует столбцы А как векторы и возвращает вектор-строку из средних величин этих векторов. Форма вызова шеав(А,В1ш) возвращает средние значения элементов вдоль размерности В1ш. ~','~~ ' н '~ ~«вя рг~о и ~«рд~.царя ЗВ~~~)~ щи иГ~ц а в,~ип~ Ф~ нкпиу ~щгдсоцвуи~с и~ ~ил ~ц Ц' ! щцр;~~~ч -.
На рис. 9.22, б) приведен результат. Размыкание, показанное на рис. 9.22, е), бы- ло выполнено функцией 1шореп: » 1о = 1шореп(1, опев(61, 1)); Отметим, что вертикальные черточки были обнаружены, но содержащие их символы целиком восстановлены не были. Теперь выполняем размыкание реконструкцией по формуле » ХоЬг = гштесопвсгисс(йе, 1); Из результата, представленного на рис. 9.22, г), видно, что символы, содержащие вертикальные черточки, были полностью восстановлены, а все остальные символы — удалены.
Оставшиеся части рис, 9.22 иллюстрируют материалы следующих двух параграфов. П 9.5.2. Заполнение отверстий Морфологическая реконструкция имеет широкий спектр практических приложений, которые определяются выбором маркера и маски. Например, пусть в качестве маркерного изображения взято изображение 1, которое равно О везде, кроме границ, а в точках границы оно равно 1 — 1; 1 — 1(х,у), если (х,у) лежит на границе, О иначе.
Тогда операция д = [Лу. ( Г )]' имеет эффект заполнения отверстий в 1, как это проиллюстрировано на рис. 9.22, д). Функция 1ш1111 выполняет эти действия автоматически при задании необязательного аргумента 'Ьо1ев' в команде я = 1ш1111(1, 'Ьо1ев'). Эта функция подробно обсуждается в 1 11.1.2. 0.5.3. Очистка от пограничных объектов Другое полезное приложение реконструкции заключается в очистке изображений от объектов, которые соприкасаются с границей. Опять ключевой момент состоит в выборе подходящих маркера и маски для достижения желаемого результата. В данном случае в качестве маски используется исходное изображение, а маркерное изображение 1 задается формулой ( 1(х,у), если (х,у) лежит на границе, (,„(х,у) = ~ О иначе.
Рис. 9.22, е) показывает результат реконструкции Ву(г" ), на котором остались лишь объекты, касающиеся границы. Разность множеств г' ~ Лу(~ ), приведенная на рис. 9.22, ж), состоит из объектов исходного изображения, которые не касаются границы. Функция 1РТ 1шс1еахЬогйег автоматически совершает эту процедуру. Она имеет форму вызова я = 1шс1еагЬохбег(1, сопл), (зВ4 г г«„« ~р,б «р, где Х вЂ” зто входное изображение, а 8 — результат.
Параметр сопи может быть равным 4 или 8 (по умолчанию). Эта функция «гасит» структуры, которые ярче своих окрестностей и которые примыкают к границам изображения. Изображение Х может быть полутоновым или двоичным. Выходом служит или полутоновое, или двоичное изображение соответственно. 9лз. Полутоновая морфология Все двоичные морфологические операции, обсуждавшиеся в этой главе, за исключением преобразований «успех/неудача», имеют естественные расширения для обработки полутоновых изображений. В этом параграфе, как и в двоичном случае, мы начнем с рассмотрения операций дилатации и эрозии, которые для полутоновых изображений формулируются в терминах минимума и максимума, взятых по окрестностям пикселов. 9.6.1. Дилатация и эрозия Полутоновая лапьация изображения )' по структурообразующему элементу Ь обозначается 1 ® Ь и определяется формулой ( ( е«Ь) (х, у) = гпах (г" (х — х', у — у') + Ь(х', у') ! (х', у') Е Рь), где Рь обозначает область определения Ь, и предполагается, что )'(х,у) равно — сю вне области определения г".
Это уравнение реализует процесс, аналогичный процедуре нахождения пространственной свертки, которая объяснялась в З 3.4.1. Для наглядности можно мысленно повернуть структурообразующий элемент на 180' вокруг его центра и разнести по всем точкам (х, у) изображения.
В каждом положении нужно сложить соответствующие пикселы изображения с пикселами повернутого и перемещенного элемента, а затем вычислить максимум всех этих величин. Получится значение дилатации в точке (х, у). Важное отличие полутоновой дилатации от пространственной свертки состоит в том, что двоичная матрица Рь определяет, какие точки из окрестности использовать в операции взятия максимума. Другими словами, для любой пары координат (хо, уо) из области Рь сумма величин ь'(х — хо, у — ув) + Ь(хо, уо) участвует в вычислении максимума только в случае, если значение матрицы Рь в ячейке (хо, уо) равно 1.
В противном случае, т. е. когда этот элемент матрицы равен нулю, соответствующая сумма не участвует в операции взятия максимума. Это действие повторяется для всех координат (х, у ) е Рь, каждый раз, как только меняется координата (х, у). Построение графика величины Ь(х~, у'), как функции координат х' и у', будет выглядеть как цифровая «поверхность», высота которой в каждой точке задается значением изображения Ь в этой точке.
На практике полутоновая дилатация обычно выполняется с использованием плоских структурообразующих элементов (см. табл. 9.2), для которых величина (высота) Ь равна О в каждой точке, принадлежащей Рь. То есть Ь(х', у') = О при (х', у') Е Рь. .
и м 3В~~5) В этом случае операция взятия максимума полностью определяется конфигурацией 0 и 1 двоичной матрица Рь, а уравнения для полутоновой дилатации принимают более простой вид (1 ьН Ь)(х, у) = гпах (1(х — т, у — у ) ~ (х, у ) Е Рь) . Таким образом, полутоновая дилатация является операцией взятия локального лэаксимульа, в которой максимум вычисляется по множеству пикселов окрестности, форма которой задается областью Рь.
Неплоские структурообразующие элементы можно строить с помощью функции всге1, передавая ей две матрицы: (1) одну матрицу из 0 и 1, которые обозначают область структурообразующего элемента Рь, и (2) другую матрицу, в которой записаны значения высот Ь(х', у'). Например, команда » Ь = всге1((1 1 1), (1 2 1)) Ь = Моп11ас БТНЕЬ оЬ)ест сопса1п1пя 3 пе1яЬЬогв. Ме1яЬЬогЬооН: 1 1 1 Не1НЬС: 1 2 1 создаетсгруктурообразующийэлемент 1 х3, значения высот которого равны Ь(0, — 1) = = 1, Ь(0, 0) = 2, Ь(0,1) = 1. Плоские структурообразующие элементы для полутоновых изображений строятся с использованием функции втге1 по тем же правилам, что и для двоичных изображений.
Например, следующие команды показывают, как совершать дилатацию изображения 1 на рис. 9.23, а) с помощью плоского ЗхЗ элемента: » ве = всге1('в9паге', 3); » яй = 1и611аве(1, ве); На рис. 9.23, б) показан результат. Как и следовало ожидать, изображение получилось слегка размытым. Остальные части рис. 9.22 обсуждаются далее. Полутоновая эрозия 1 по структурообразующему элементу Ь обозначается ) 9 Ь и определяется формулой (( с) Ь)(х,у) = пнп(((х+ х',у+ у ) — Ь(х',у ) ( (х',у ) е Рь), где Рь обозначает область определения Ь и предполагается, что Дх, у) равно +со вне области определения 1. Опять эту процедуру можно мысленно представлять в виде перемещения центра структурообразующего элемента во все точки изображения.
В каждой точке изображения значения структурообразующего элемента вычитаются из соответствующих значений пикселов изображения и берется минимум по всем таким разностям. характеристики, подобно тому, как это делается операцией взятия градиента, обсуждавшейся в З 6,6.1, и которая еще будет рассматриваться в з 10.1.3. 9.6.2.
Размыкание и замыкание Формулы размыкания и замыкания для полутоновых изображений имеют такой же вид, что и для двоичных изображений. Размыкание изображения ) по элементу Ь обозначается 1 о Ь и определяется выражением )оь=()ОЬ)ЕЬ. Как и раньше, сначала выполняется эрозия ) по Ь, за которой следует дилатация по Ь. Аналогично, замыкание 1' по Ь, обозначаемое ) ° Ь, есть дилатация, после которой совершается эрозия: ) ° Ь = () йг Ь) О Ь. Обе эти операции имеют простую геометрическую интерпретацию. Представим изображение Дх, у) в виде трехмерной поверхности, т.
е. значения яркости представляются высотами над координатной плоскостью яу. Тогда процесс размыкания 1 по Ь представляет собой перемещение (перекатывание) структурообразующего элемента строго под трехмерной поверхностью изображения з", причем поверхность размыкания получается как огибающая высшие точки, которые достигает этот элемент. Рис. 9.24 иллюстрирует эту процедуру в одномерном случае. Рассмотрим кривую на рис. 9.24, а), которая представляет собой значения высот (яркости) вдоль какой-то строки изображения. На рис. 9.24, б) показано несколько положений плоского структурообразующего элемента при перемещении под кривой.
Результат замыкания дан на рис. 9.24, в) жирной линией над серой областью. Поскольку. структурообразующий элемент слишком велик, чтобы поместиться внутри узкого пика, расположенного посередине исходного изображения, это пик срезается при размыкании. В общем случае процедура размыкания используется для удаления узких всплесков яркости при сохранении среднего полутонового фона и широких областей изменения яркости относительно неизменными. Рис. 9.24, г) иллюстрирует процесс замыкания.
Теперь структурообразующий элемент перемещается сверху по поверхности кривой яркости. Результат замыкания, показанный на рис. 9.24, д), получается нахождением всех самых нижних точек, которые достигаются элементом при движении по кривой. Видно, что замыкание подавляет более темные малые колебания яркости, размеры которых меныпе размеров элемента.