Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 18
Текст из файла (страница 18)
Е). Раташесет М шпвс Ье 1п сЬе тапЯе [О, 1) ТЬе бе1ап1С % на1пе Тот М 1я шеап2(1ш26опЫе(Р)), ялб СЬе беХап1С на1пе 1от Е % 1з 4. % % Рот СЬе 'пеЯ', 'Яашша', алб 'зстессЬ' СтапзТотшас1опз, бопЫе '/ Апрпс 1шаяев ыЬове шахбшшп на1пе 1з ятеасет СЬал 1 ате яса1еб % 11тяС пз1пя МАт2ОВАУ. ОсЬет Ашаяез ате сопнетсеб Со бопЫе 11твс '/ пв1пЯ 1М2000ВЬЕ. Рот СЬе ' 1оЯ' Стапя1отшасбоп, бопЫе %шабаз ате % Стапя1отшеб ыАСЬопС Ье1пЯ яса1еб; оСЬет 1шабея ате сопчетсеб Со % бопЫе 11твс пя1пЯ 1М2000ВЬЕ. % % ТЬе опсрпс Ая о1 СЬе ваше с1азв ав сЬе 1прпс, ехсерс 11 а % 61ттетепс с1авв 1в зрес111еб 1от СЬе '1оЯ' орС1оп.
% Чет11у СЬе соттесС шипЬет о1 АпрпСя. еттот(патясЬК(2, 4, патя1п)) % ЯСоте СЬе с1авв о1 СЬе 1прпС Тот пве 1аСет. с1авв1п = с1азв(1); % 11 сЬе зпрпс 1в о1 с1авв бопЫе, алб Ас Ав опсв16е СЬе тапбе % [О, 1), апб СЬе зрес111еб сталвХотшас1оп 1в пос '1об', сопчетс СЬе % 1прпс Со СЬе тапбе [О, 1) . 1Х встсшр(с1авв(Х), 'бопЫе') А шах(Х(:)) > 1 Ь встсшр(нататЯ1п[1), '1оЯ') 1 = шаС2Ятау(1); е1ве / Сопчетс Со бопЫе, тебат61евз о1 с1авв(Х) . 1 = 1зп26опЫе(1); епб ~~~88 Глава о, Преобразования яркости ивобраозсений и пространственнол фильтрация '/ Оесегш1пе СЬе Суре оХ Сгапя1огшас1оп вресЫ1ед. шеСЬоо = чагагб1п(1); % РегХогш СЬе 1псепв1Су Сгапв1огшаС(оп ярес111еб.
яи1СсЬ шеСЬоб саве 'пеб' Е = 1шсошр1ешепС(1); саве '1об' 11 1епЕСЬ(чагагб1п) == 1 с=1; е1яе11 1епЕСЬ(чагаг81п) == 2 с = чагаг81п(2); е1веН 1епЕСЬ(чагагбгп) == 3 с = чагагб1п(2); с1аяя1п = чагагбтп(3); е1ве еггог('1псоггесС пишЬег оХ 1приСв Хог СЬе 1об орС1оп.') епб Е = сч(1об(1 + донЫе(Х))); саве 'Евшша' 11 1епЕСЬ(чагаг81п) ( 2 еггог('Нос епонбь 1прнся хог сье Еашша орс1оп.') епб Евш = чагагбгп(2); в = 1шасЦивС(Х, ( ), ( ), Еаш); саве 'ясгессЬ' 11 1епЕСЬ(чагагбтп) == 1 '/ Уве йе1аи1Св.
ш = шеап2И); Е = 4.0; е1ве11 1епЕСЬ(чагаг81п) == 3 ш = чагаг81п(2); Е = чагаг81п(3); е1яе еггог('1псоггесс пишЬег от 1прися Хог СЬе всгессЬ орС1оп.') епс( 1./(1 + (ш./(1 + ерв))."Е); оСЬеги1ве еггог('()пйповп епЬвлсешепС шеСЬоб.') епб '/ Сопчегс Со СЬе с1авв оХ СЬе 1приС 1шабе. Е = сЬалбес1аяв(с1авв1п, Е); Пример 3.3. Иллюспзрация функции 1псгапв. Рассмотрим изображение на рис. З.б, а), которое прекрасно подходит для применения преобразования растяжения контрастности для усиления структуры скелета.
Результат, приведенный на рис. З.б, б), получен при следующем обращении к функции 1псгапв: ~90 г З.п и г а интервал [О, 255], и ' Хв1116', приводящее к интервалу [О, 65535]. при этих значениях переменной шесЬоб аргументы 1ои и Ь16Ь игнорируются (их можно вовсе опускать). Третьим допустимым значением переменной шесЬой служит 'шпнвах'. В этом случае аргументы 1ои и Ь16Ь обязаны присутствовать и должны находиться в диапазоне [О, Ц. Итак, если выбрано значение 'шйпшах', то изображение отображается в интервал ~1ои, Ь16ЬЬ Хотя эти значения имеют диапазон [О, 1], программа совершает подходящее масштабирование в зависимости от класса входного изображения, а затем преобразует выходное изображение в тот же класс, что и входное.
Например, если Х было класса п1пс8 и задан метод 'шйпшах' с интервалом [0,0.5], то выходное изображение будет того же класса ийпс8 в диапазоне [О, 128]. Если же 1 было класса йопЬ1е, и диапазон его значений выходит за пределы [О, 1], то программа сначала конвертирует его в этот диапазон, а потом совершит требуемое перемасштабирование. Функция ввса1е будет многократно использоваться на протяжении всей книги.
3.3. Обработка гистограмм и построение графиков функций Функции преобразования изображений, основанные на информации, которая извлекается из гистограмм яркости изображений, играют ключевую роль при обработке изображений, совершаемой при решении задач улучшения изображений, их сжатия, сегментации и описания. В этом параграфе будут разобраны методы нахождения, построения и использования гистограмм для улучшения изображений1. Другие применения гистограмм будут обсуждаться в следующих главах.
3.3.1. Нахождение и построение гистограмм Гистограммой цифрового изображения, число возможных уровней яркости которого равно Ь, лежащих в диапазоне [О, С], называется дискретная функция Ь[ть) = пы где ть — это й-ый уровень яркости из интервала [О, С], а па — число пикселов изображения, уровень яркости которых равен ты Значение С равно 255 для изображений класса п1пс8, 65585 — для класса пйпс16 и 1.0 — для класса йоиЬ1е.
Напомним, что индексы в МАТЬАВ начинаются с 1, а не с О, поэтому т1 соответствует уровню яркости О, тт соответствует уровню яркости 1 и так далее до тп, что соответствует уровню С. Заметим, что С = Ь вЂ” 1 для изображений класса ийпв8 и п1пв16. Часто бывает удобно работать с нормированными гистограммами, которые получаются делением элементов Ь(та) на общее число пикселов изображения, которое мы обозначим п; й(та) пь р(та) = и и |В 4 4.5.3 рассматривааття техника построения двумерных графиков.
5.5. Об б ф Ф ~ттт при 6 = 1,2,...,7,. С точки зрения теории вероятностей. число р(гь) это вероятность (частота) появления (присутствия) уровня интенсивности гь в данном изображении. Стержневой функцией пакета для обращения с гистограммами служит функция 1шЬ(вх со следующим синтаксисом: пшЬ(вп(Х, Ь) где 1 — это входное изображение, Ь - его гистогралтлта, 6(гь), и Ь число корзин, использованных при формировании гистограммы (если аргумент Ь отсутствует, то по умолчанию принимается Ь = 256).
Корзиной называется подразделение шкалы яркости. Например, если при работе с изображениями класса и(пп8 переменная Ь = 2, то шкала яркости делится на две подобласти (корзины): от 0 до 127 и от 128 до 255. Итоговая гистограмма будет иметь два значения: 6(1), равное числу пикселов изображения, величины которых находятся в интервале (О, 127], и 6(2), которое равно числу пикселов со значениями в интервале (128, 255).
Чтобы получить нормированную гистограмму, надо просто выполнить действие р = пшЬ(вХИ, Ь)/пише1И). Напомним, что пише1(Х) дает число элементов массива Х, т, е, число пикселов изображения (см. 3 2.10.3). Пример 3.4. Нахоотсдение гисттлограмм и посшроение их графиков. Рассмотрим изображение 1 на рис. 3.3, а). Простейший способ построения его гистограммы состоит в применении функции 1шЬ(вх без обозначения выходного аргумента: » 1шЬ(вп(1); На рис.
3.7, а) показан результат этого действия. Такое построение гистограммы заложено по умолчанию в пакете. Однако имеется много других способов построения и графического отображения гистограммы. Мы воспользуемся этой возможностью для объяснения некоторых опций построения графиков в МАТЬАВ, которые пригодятся в конкретных приложениях обработки изображений. Гистограмму можно построить с помощью столбчатьтх диаграмм.
Для этого служит функция Ьаг(Ьогх, ч, чЫхЬ), где ч — это вектор-строка, график которого надо построить, Ьогх — вектор того же размера, что и вектор ч, состоящий из приращений по горизонтальной шкале, и ч14ПЬ вЂ” число между 0 и 1. Если параметр Ьогх опущен, то горизонтальная ось делится с шагом 1 от 0 до 1епбпЬ(ч) . Когда я(дпЬ равно 1, соседние столбики соприкасаются, когда чйдхЬ равно О, столбики являются вертикальными линиями, как на рис. 3.7(а). По умолчанию чйдпЬ равно 0.8. При построении столбчатых диаграмм принято уменьшать разрешение по горизонтальной оси, деля ее на полосы. Следующие команды приводят к построению столбчатой диаграммы, на которой горизонтальная ось делится на группы по 10 уровней: В.В.
Ов в «Ф ф 9~~3) где ягхе — это размер шрифта в пунктах. Текст можно также разместить прямо на графике с помощью функции Сехс следующим образом: СехС(х1ос, у1ос, 'СехС ясг1пб', '1опся1хе', ягхе), где х1ос и у1ос — зто координаты начала текста. Применение этих трех функций будет проиллюстрировано в примере 3.5. Обратите внимание на то, что функции оформления графика следует использовать после построения самого графика. График можно снабдить заголовком с помощью функции С1С1е С1С1е('С1С1еясг1пб') где Сзв1еясг1пб — это строка символов заголовка, которая будет размещена по центру над графиком.
Стеблевал диаграмма строится аналогично столбчатой диаграмме. Ее синтаксис имеет видт яСеш(Ьогх, ч, 'со1ог 1хаеяСу1е шаг)сег', '1Ш '), где ч — зто вектор-столбец, график которого необходимо построить, а переменная Ьогх имеет тот же смысл, что и в функции Ьаг. Аргумент со1ог 11певсу1е шаг)сег состоит из комбинации символов, возможные значения которых приведены в табл. 3.1. Например, команда ясеш(ч, 'г — — я') построит стеблевую диаграмму, на которой вертикальные стебли будут проведены красными пунктирными линиями, а головки стеблей будут квадратными. Если присутствует переменная 1111, а переменная шатает обозначает круг, квадрат или ромб, то зти символы внутри закрашиваются в цвет, предписанный переменной со1ог.
По умолчанию цвет считается черным, линии стеблей сплошными, а головками служат круги. Стсблевая диаграмма на рис. 3.7, е) получена с помощью команд » Ь = 1шЫяС(1); » Ы = Ь(1:10:255); » Ьогх = 1:10:255; » вСеш(Ьогя, Ы, '1111'); » ах1я([0 255 0 15000)); » яес(бса, 'хС1с1с', 0:50:255) » яеС(бса, 'уС1с)с', 0:2000:15000) Таблица Здь Атрибуты функций всея и ртос. Атрибут попе применяется только к функ- ции р1ос, и его следует описывать отдельно (см. синтаксис функции ртос) Дополнительные опции функции втев см. на справочной странице этой функции.
(94 т 3. и и а р е В заключение рассмотрим функцию р1ос, которая строит график по точкам, соединяя их отрезками прямых линий. Она имеет синтаксис р1ос(Ьогх, у, 'со1ог 11пеесу1е шагйет') где аргументы имеют тот же смысл, что и у функции вееш. Допустимые значения атрибутов со1ог, 11певсу1е и шагйег даны в табл. 3.1. Если переменная 11певсу1е или шатйег имеет значение попе, то все атрибуты должны быть заданы индивидуально. Например, команда » р1ос(Ьогх, и, 'со1ог', 5', '11певсу1е', 'попе', 'шагйег', 'в') построит график нз зеленых квадратов и соединит их прямыми линиями. По умолчанию функция р1ос строит черный сплошной график без отметки узловых точек.