Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 75
Текст из файла (страница 75)
Обратите внимание на использование функции ЬвшогрЬ из гл. 9 для сокращения до одного числа связных центров кристаллизации в каждой области Б (когда Я есть массив), а также на применение функции 1шгесопвсгпсс для нахождения всех пикселов, связанных с каждым центром кристаллизации.з 1ппсс1оп [Е, МК, 31, Т11 = ге31опЕговИ, 3, Т) '/КЕС1ОМСКОМ РегХогш веЯшепсае1оп Ьу ге81оп Егов1пЕ.
'/ [С, МК, 31, Т1) = КЕСХОМСКОМ[Р, БК, Т). Я сел Ье ап аггау [сЬе '/ ваше в1яе ав Р) я1СЬ а 1 аг СЬе соого1пагев о1 евегу вее«1 ро1п '/ апс) Ов е1вевЬеге. Я сап а1во Ье а в1п31е вее«1 на1пе. 31ш11ег1у, '/ Т сад Ье эл эггау [сЬе ваше в1яе ав Р) сопса1п1пЕ а сЬгевЬо16 '/ ва1пе 1ог еасЬ р1хе1 1п Р. Т сап а1во Ье а вса1аг, 1п вййсЬ '/ саве 1С Ьесошев а 31опа1 СЬгевЬо1«1. у '/ Оп сЬе опсрис, С 1в сЬе гевп1с о1 ге31оп Егои1пЕ, в11Ь еасЬ / ге81оп 1аЬе1ео Ьу а оШегепс 1псеЯег, МК 1в сЬе пшвЬег о1 '/ ге31опв, 31 1в сЬе Хгпа1 веео 1шаЕе ивеп Ьу сЬе а13ог11Ьш, апд Т1 '/ 1в сЬе 1шаЕе сопв1вс1пЕ о1 сЬе р1хе1в 1п Р сЬас вас1в11еб сЬе '/ сЬгевЬоЫ севе. 1 = оопЬ1е[Х); '/ 11 Я 1в а вса1аг, оЬса1п сЬе веео 1шаЕе. 11 поше1[3) == 1 31 = Х == Б; 31 = Я; е1ве '/ Б 1в ап аггау.
Е11шгпаге оир11саге, соппесеед веед 1осаг1опв Эотое эквивалентно 1оягса1(1), в Ха1ве — это 1окгса1(0) ~430 Г о. о б 10.4.3. Разделение и слияние областей Описанная только что процедура выращивает области из множества центров кристаллизации. Альтернативный подход разделения на области состоит в том, чтобы провести первичное разбиение изображения на множество произвольных непересекающихся областей и в дальнейшем осуществлять слияние и)'или разделение этих областей, стремясь к выполнению условий, сформулированных в Э 10А.1. Далее излагается итеративный алгоритм разделения и слияния, который соблюдает эти ограничения. Пусть вся область изображения обозначена В и выбран предикат Р.
Один из возможных подходов к сегментации й состоит в том, чтобы последовательно разбивать эту область на все более и более мелкие квадратные подобласти В„ пока выполняется условие Р(й,) = ТИ)Е. Процесс начинается со всей области изображения. Если Р(Н) = РАББЕ, то изображение делится на четверти вертикальной и горизонтальной прямыми, проходящими через середину. Если для какой-то четверти предикат Р принимает значение ГАЕЧКЕ, то она аналогичным способом делится на более мелкие четверти, и так далее.
Такой метод разбиения удобно представлять в форме так называемого кеадродерееа (т.е. дерева, у которого вершины, не являющиеся листьями, имеют в точности четыре потомка), как показано на рис. 10.16 (подизображения, которые соответствуют узлам квадродерева, иногда называются кеадрообластлями или квадроиэображениями). Отметим, что корень дерева соответствует целому изображению, а каждая другая вершина — какой-то из его подобластей. В данном случае только область Рм подверглась дальнейшему разбиению. Если использовать только операцию разделения, то в окончательном разбиении изображения могут присутствовать соседние области, имеющие одинаковые свойства. Этот недостаток можно устранить, применяя наряду с разделением также операцию слияния.
Для соблюдения ограничений из э 10.4.1 требуется, чтобы слиянию подвергались только соседние области, пикселы которых в совокупности удовлетворяют предикату Р. Другими словами, две соседних области В и Ва сливаются только в том случае, если Р(Я и Вь) = ТКПЕ. а) Рнс. 10.16. а) Деление нзобрансеннн на часта. б) соответствующее нвадродерево Проведенное обсуждение можно кратко суммировать в виде процедуры, на каждом шаге которой выполняются следующие действия: дд С д д 43~) 1. Любая область В, для которой Р(Рс ) = РАББЕ, разделяется на четыре непересекающиеся четверти.
2. Любые две соседние области тс, и усы для которых Р1й) и гсь) = ТЛЕ, объединяются в одну. 3. Если невозможно выполнить ни одной операции слияния илн разделения, то процедура завершается. Возможны различные варианты изложенной основной схемы. Например, изображение вначале разбивается на множество блоков; дальнейшее разделение проводится, как описано выше, но слияние допускается только внутри группы из четырех блоков, являющихся потомками в квадродереве и удовлетворяющих предикату Р.
Когда дальнейшее слияние такого вида оказывается невозможным, процедура заканчивается однократным слиянием областей, для которых соблюдаются условия вышеуказанного шага 2; при этом объединяемые области уже могут быть разных размеров. Главное достоинство такого подхода состоит в использовании одного и того же квадродерева для разделения и слияния на всех шагах, кроме заключительного шага слияния. В пакете ГРТ выполнение разложения по квадродереву реализовано М-функцией псбесошр. Интересующая нас форма вызова этой функции имеет вид Я = с1СбесошрИ, йвр11с севС, рагашеСегв), где Х вЂ” это исходное изображение, а Я вЂ” разреженная матрица, которая представляет структуру квадродерева. Если элемент Яск, ш) не равен нулю, то ск, ш) является верхним левым углом квадратного блока в разложении и сторона этого блока равна ЯПс, ш).
Функция ер11с Севс (см. функцию ар11сшегяе в следующем примере) определяет, надо ли разделять данную область на части, а рагашесеге — любые параметры,которыемогутпонадобитьсяфункции вр11С Сеас. Механика обращения с такими параметрами аналогична той, которая рассматривалась в 2 3.4.2 применительно к функции соШ11С. Чтобы получить настоящие значения пикселов квадрообластей на квадродереве разложения, применяется функция с1СЯеСЬ1Х, которая имеет синтаксис ~иа1в, г, с) = <~СЯеСЬ1)с(т, Я, ш), где иа1а — это массив, содержащий величины блоков размерами шхш на дереве разложения изображения 1, а Я вЂ” это разреженная матрица, которую возвращает функция псбесошр.
Параметры г и с являются векторами, в которые записаны координаты строк и столбцов верхних левых углов этих блоков. Проиллюстрируем использование функции д1Сс)есошр, написав основную М- функцию разделения и слияния, которая совершает упрощение, обсуждавшееся ранее, когда две области сливаются в одну при выполнении предиката каждой из них по отдельности.
Функция, которую мы назвали вр11сшегбе, имеет следующую форму вызова: Я = ер11Сшегбе(Х, ш1пс)1ш, йргес11сасе)д ддругие формы функции чсавсоир обсуждаются а а 11.2.2. (432 Глава 10. Сегментация изображений где Х вЂ” это входное изображение, Е выходное изображение, в котором все связные области помечены разными целыми числами. Параметр ш?пс?1ш определяет размер самого маленького блока, допускаемого при разложении; этот параметр должен быть положительной степенью числа 2.
Функция ргей?сасе задается пользователем, и ее местоположение должно быть известно системе (указано в переменной среды МАТЬАВ). Она имеет синтаксис 11аЕ = ргес?1сасе(геЕ1оп). Эта функция должна возвращать значение Стае (логическую 1), когда пикселы в области геЕ?оп удовлетворяют предикату, задаваемому этой функцией, в противном случае значение 11аЕ должно быть равно 1а1яе (логическому О). В примере 10.9 имеется иллюстрация применения этой функции. Функция яр11Сшегбе имеет простую структуру.
Вначале изображение делится фУнкцией йсс?есошР. Функция яр11С Сент использует ргеййсасе для определения, нужно ли разделять область на части. Поскольку при разделении области на четыре подобласти заранее неизвестно, какая из них индивидуально пройдет тест предиката, далее выполняется этот тест. Здесь еще раз используется функция ргеа?сесе. Каждая квадрообласть, прошедшая тест, заполняется единицами. Этот массив используется вместе с разделенным изображением для определения связности (смежности) области. Для этих целей применяется функция АшгесопяСгпсС.
Далее приводится код функции яр11Сшегбе. Простая предикатная функция. описанная в закомментированном справочном блоке функции, используется в примере 10.9. Обратите внимание на то, что размеры входного изображения приводятся к наименьшему объемлющему квадрату, сторона которого есть степень числа 2. В этом заключается требование функции е?Саесошр гарантировать возможность разделения изображения вплоть до единичного размера.б 1ппсС?оп Е = вр11Сшегбе(1, ш?па?ш, ?пп) %ЯРЬ1ТМЕЕСЕ Яебшепс ап 1шабе пв1пЕ а яр11С-апй-шегбе а1бог1СЬш. % С = ЯРБ1ТМЕЕСЕ(Р, МХНР?М, йРЕЕР1САТЕ) вейшепсв ?шабе Р Ьу пя?пб а % вр11С-апй-шетйе арргоасЬ Ьаяей оп с?пайсгее аесошров?С1оп.
МТНР1М % (а ров1С1пе гасейег ранет о1 2) ярес111ев СЬе ш?п?шшп с?1шепв1оп % о1 СЬе с?пас?Сгее геЕ?опя (япЬ1шабея) а11ояеа. 11 песевяагу, СЬе % ргойташ раня СЬе 1прпС ?шабе и1СЬ яегоя Со СЬе пеагевС яе?пате % я1яе СЬаС 1в ап 1псебег ранет о1 2. ТЬ?я Епагапсеея СЬаС СЬе % а1ЕотаСЬш пвее? 1п СЬе йпас?Сгее с?есошроя1С1оп н?11 Ье аЬ?е Со % вр11С СЬе ?шабе с?овп со Ь1ос?ся оХ я?яе 1-Ьу-1.
ТЬе геяп1С 1в % сгоррес? Ьас?с Со СЬе от1Е1па1 я1яе о1 СЬе 1прпС ?шабе. 1п СЬе % опсрпС, С, еасЬ соппессес? гей?оп Ая 1аЬе1еа в1СЬ а йШегепС % 1псеяет. % % НоСе СЬаС 1п СЬе 1ппсС1оп са11 ве пяе ЙРЕЕР1САТЕ 1ог СЬе на1пе о1 % 1пп. РЕЕР1САТЕ 1в а 11шсС1оп 1п СЬе МАТЬАВ раСЬ, ргон?бей Ьу СЬе 'Команда Сеча?Икп, расея) нычисляет функцию Епп с параметрами рагаа. См. другие формы обращения к тета? на спраночной странице этой функции. Ю.д.