Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСИ / АСУ_Меркулова_Обработка изображений_метод_лаб.doc
Скачиваний:
27
Добавлен:
03.03.2016
Размер:
3.07 Mб
Скачать

Imhist Побудова гістограми

Синтаксис:

imhist ( I, n )

imhist ( BW, n )

imhist ( X, map )

[ h, cx ] = imhist ( I, n )

[ h, cx ] = imhist ( BW, n )

[ h, cx ] = imhist ( X, map )

Опис:

Функції imhist ( I, n ) і imhist ( BW, n ) в поточному вікні будують гістограми яскравості пікселів відповідно напівтонового і бінарного зображень. Гістограма складається з n стовпців. Значення n при виклику функції можна не вказувати, в цьому випадку будуть використані значення за замовчуванням;

n = 256 для напівтонового зображення і n = 2 для бінарного зображення. Під малюнком гістограми виводиться шкала яскравості.

Функція imhist ( X, map ) в поточному вікні будує гістограму індексів пікселів палітрового зображення X. Під малюнком гістограми виводиться палітра mар.

Функції [ h, cx ] = imhist (...) повертають вектор гістограми h і вектор положення центрів стовпців гістограми сх на осі яркостей ( для напівтонових і бінарних зображень) або на осі індексів (для палітрових зображень), що дозволяє робити подальшу обробку гістограми h або, наприклад, побудувати огинаючу гістограму за допомогою функції plot ( cx, h ).

Приклад:

Для напівтонового зображення I ( рис. 2.11, в ) будується гістограма яскравості пікселів ( рис. 2.17. а ) і огинає гістограми в логарифмічному масштабі ( рис. 2,17. б).

% ехаmр17.m

% Приклад демонструє побудову гістограми зображення.

% Читання зображення з файлу.

I = imread ( ' rs.tif ' );

% Побудова гістограми яскравості пікселів і виведення її на екран.

imhist ( I );

% Отримання гістограми в логарифмічному масштабі

% і виведення її на екран,

[ h, cx ] = imhist ( I );

h = log10 ( h );

figure, plot ( cx, h );

Imadjust Контрастування з гамма - корекцією

Синтаксис:

ID = imadjust ( IS, [ low high ], [ bottom top ], gamma )

newmap = imadjust ( map, [ low high ], [ bottom top ], gamma )

newmap = imadjust ( map, [ lR hR; lG hG; lB hB ], [ bR tR; bG tG; bB tB ). [ gR gG gB ] )

RGBD = imadjust ( RGBS, [ low high ], [ bottom top ], gamma )

RGBD = imadjust ( RGBS, [ lR hR; lG hG; lB hB ], [ bR tR; bG tG; bB tB ], [ gR gG gB ] )

Опис:

Функція ID = imadjust ( Is, [ low high ], [ bottom TOР ], gamma ) створить півтонове зображення ID шляхом контрастування вихідного напівтонового зображення IS. Значення яскравості в діапазоні [ low, high ] перетворюються на значення яскравості в діапазоні [ bottom, top ]. Значення яскравості, менші low, приймають значення bottom, а значення яскравості, більші ніж high, приймають значення top. Значення top, bottom, low, high повинні належати діапазону [0, 1 ]. Якщо в якості другого ( [ low high ] ) або третього ( [ bottom top ] ) параметрів передати порожній вектор [ ], то за замовчуванням буде використаний вектор [ 0,1 ]. За допомогою показника gamma можна додатково здійснювати перетворення, зване гамма - корекцією. Параметр gamma визначає форму кривої характеристики передачі рівнів яскравості. Якщо gamma менше 1, то характеристика передачі рівнів буде опуклою і результуюче зображення буде світліше, ніж початкове. Якщо gamma більше 1, то характеристика передачі рівнів буде увігнутою і результуюче зображення буде темніше, ніж початкове. За замовчуванням параметр gamma дорівнює 1, що відповідає лінійній характеристиці передачі рівнів і відсутності гамма - корекції. При виклику функції показник gamma можна опустити.

Характеристики передачі рівнів для різних значень gаmmа наведені на рис. 2.19.

Функція newmap = imadjusl ( map, [ low high ], [ bottom top ), gamma ) створює нову палітру newmap шляхом контрастування вихідної палітри mар. Перетворення здійснюється аналогічно перетворенню напівтонового зображення окремо для кожної з R - G -, В - складових. Діапазон перетворення інтенсивностей складових [ low high' і [ bottom top ], а також показник gamma задаються однаковими для всіх складових. Різні діапазони перетворення інтенсивностей і показник gammа для R -, G -, В - складових можна задати за допомогою функції newmap = imadjust ( map, [ lR hR; lG hG; lB hB ], [ bR tR; bG tG; bB tB ). [ gR gG gB ] ).

Функція RGBD = imadjust ( RGBS, [ low high ], [ bottom top ], gamma ) створює повнокольорове зображення RGBD шляхом контрастування вихідного повнокольорового зображення RGBS. Перетворення здійснюється аналогічно перетворенню напівтонового зображення окремо для кожної з R -, G -, В - складових. Діапазони перетворення інтенсивностей складових [ low high ] і [ bottom top ], а також показник gamma задаються однаковими для всіх складових. Різні діапазони перетворення інтенсивностей і показник gamma для R -, G -, В - складових можна задати за допомогою функції RGBD = imadjust ( RGBS, [ lR hR; lG hG; lB hB ], [ bR tR; bG tG; bB tB ], [ gR gG gB ]

Формат подання даних вихідного і результуючого зображень збігаються.

Приклад:

Півтонове зображення I читається з файлу і відображається на екрані ( рис.2.20. а ). Для аналізу діапазону яскравості вихідного зображення I будується гістограма яскравості пікселів за допомогою функції imhist ( I ) ( рис.2.20. б). За гістограмою видно, що пікселі зображення I мають яскравості в діапазоні [ 0; 180], зображення I недостатньо контрастне. Функція imadjust "розтягує "вихідний діапазон яскравості на діапазон від мінімально можливої ​​яскравості до максимально можливої ​​. Результатперетворення виводиться на екран у нове вікно ( мал. 2.20, д ). Гістограма яскравості пікселів результуючого зображення показана па рис. 2.20, тобто результуюче зображення контрастніше, ніж початкове.

% examp20.m

% Приклад демонструє контрастування зображення.

% Читання вихідного зображення і виведення його па екран.

I = imread ( ' valleydark.tif ' );

imshow ( I );

% Побудова гістограми вихідного зображення,

figure, imhist ( l );

% Контрастування вихідного зображення.

I = imadjust ( l, [ 0180 ] / 255, [ ], 1);

% Вивід перетвореного зображення на екран,

figure, imshow ( I );

% Вивід гістограми перетвореного зображення,

figure, imhist ( I );

Завдання: реалізувати усі наведені приклади, та дослідити описані функції