Алгоритми цифрової фільтрації над 2-мірними сигналами в спеціалізованих програмних пакетах

Тип работы:
Контрольная
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Алгоритми цифрової фільтрації над 2ірними сигналами в спеціалізованих програмних пакетах

Вступ

деконволюція зображення розмитий

Система MATLAB, розроблена програмістом Молером, як середовище програмування високого рівня для технічних обчислень, з кінця 70-х років широко використовували на великих ЕОМ. На початку 80-х років Дж. Літл з фірми Math Works, Inc. розробив першу версію системи PC MATLAB для комп’ютерів класу IBM PC та Macintosh, з якої і почалася еволюція версій системи для персональних комп’ютерів.

Архітектурно система MATLAB складається з базової програми і декількох десятків так званих пакетів розширення, які у своїй сукупності забезпечують винятково широкий діапазон розв’язуваних задач. Інтеграція всіх цих засобів у єдиному робочому середовищі забезпечує необхідну гнучкість використання сотень вбудованих функцій, які реалізують різноманітні математичні процедури та обчислювальні алгоритми.

Можливості системи MATLAB практично необмежені, а за швидкістю обчислень вона нерідко перевершує своїх конкурентів. Система пристосована для розрахунків у будь-якій галузі науки та техніки і широко використовується при математичному моделюванні фізичних пристроїв та систем. Система MATLAB є однією з найбільш відомих і популярних систем комп’ютерної математики, яка призначена для рішення широкого класу задач, пов’язаних з тим чи іншим розділом теоретичної або прикладної математики. Цьому сприяє не тільки розширений набір матричних та інших операцій і функцій, але й наявність пакета розширення Image Processing Toolbox.

Image Processing Toolbox надає широкий спектр засобів для цифрової обробки та аналізу зображень. Будучи тісно пов’язаним з середовищем розробки додатків MATLAB, пакет Image Processing Toolbox звільняє Вас від виконання тривалих операцій кодування і налагодження алгоритмів, дозволяючи зосередити зусилля на вирішенні основної наукової або практичної задачі. MATLAB і пакет Image Processing максимально пристосований для розвитку, впровадження нових ідей і методів користувача. Для цього є набір сполучених пакетів, спрямованих на вирішення всіляких специфічних завдань і завдань в нетрадиційній постановці.

Пакет Image Processing Toolbox являє собою набір функцій, які розширюють можливості чисельних обчислень в середовищі MATLAB. Image Processing Toolbox підтримує різні операції обробки зображень, включаючи:

· просторові перетворення зображень;

· морфологічні операції;

· ковзаючу і блокову обробку;

· лінійну фільтрацію різними фільтрами;

· аналіз і поліпшення зображень;

· відновлення зображень;

· видалення розмитостей;

· обробка області інтересу.

1. Геометричні перетворення зображення

До найбільш поширених функцій геометричних перетворень відноситься кодування зображень (imcrop), зміна розмірів (imresize) і поворот зображення (imrotate).

Суть кадрування полягає в тому, що функція imcrop дозволяє за допомогою миші в інтерактивному режимі вирізати частину зображення і помістити її в нове вікно перегляду.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

imshow (P);

imcrop;

figure,

Рис. 1. Оригінальне та кадрове зображення

Функція зміни розмірів зображення (imresize) дозволяє, використовуючи спеціальні методи інтерполяції, змінювати розмір будь-якого типу зображення.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

P1=imresize (P, 0. 5);

imshow (P1);

Рис. 2. Оригінальне та в два рази зменшене зображення

В пакеті Image Processing Toolbox існує функція imporate, яка дозволяє здійснювати поворот зображення на заданий в градусах кут. Значення кута повороту можна задавати як цілими так і десятковими дробами, тобто частини кута (хвилини та секунди).

Синтаксис:

P=imrotate (P, 135, 'bicubic');

figure

imshow (P)

Рис. 3. Оригінальне та повернене на 135° зображення

Таким чином, наведені вище функції дозволяють повертати, вирізати частини, масштабувати, тобто працювати з цілим масивом зображення.

2. Аналіз зображення

Для роботи з окремими елементами зображень використовуються такі функції як imhist, impixel, mean2, corr2 та інші.

Однією з найбільш важливих характеристик є гістограма розподілу значень інтенсивностей пікселів зображення, яку можна побудувати за допомогою функції imhist (рис. 4.).

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

figure,

imshow (P);

figure,

imhist (P);

Рис. 4. Оригінальне зображення та його гістограма

Досить часто при проведенні аналізу зображень виникає необхідність визначити значення інтенсивностей деяких пікселів. Для цього необхідно в інтерактивному режимі використовувати функцію impixel.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

figure,

imshow (P);

impixel

ans =

117 117 117

253 253 253

98 98 98

188 188 188

89 89 89

42 42 42

73 73 73

66 66 66

167 167 167

149 149 149

94 94 94

105 105 105

167 167 167

127 127 127

30 30 30

66 66 66

109 109 109

130 130 130

152 152 152

113 113 113

125 125 125

143 143 143

116 116 116

101 101 101

123 123 123

135 135 135

63 63 63

53 53 53

96 96 96

103 103 103

Рис. 5. Зображення із позначеними на ньому крапками інтенсивності

3. Поліпшення зображення

Серед вбудованих функцій, які реалізуються найбільш відомими методами поліпшення зображень, є наступні - histeq, imadjust та imfilter (fspecial).

Як вже зазначалося раніше, гістограма зображення є однією з найбільш інформативних характеристик. На основі аналізу гістограми можна судити про яскравість спотвореного зображення, тобто сказати про те, чи є зображення затемненим або засвітленим. Відомо, що в ідеальному випадку на цифровому зображенні в рівній кількості повинні бути присутні пік селі з усіма значеннями яскравостей, тобто гістограма повинна бути рівномірною. Перерозподіл яскравості пік селів на зображенні з метою отримання рівномірної гістограми виконує метод еквалізації, який в системі Matlab реалізовано за допомогою функції histeq (вирівнювання гістограми).

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

figure,

imshow (P);

P1=histeq (P);

figure,

imshow (P1);

Рис. 6. Перерозподіл яскравостей

Досить часто при формуванні зображень не використовується весь діапазон значень інтенсивностей, що негативно відбивається на якості візуальних даних. Для корекції динамічного діапазону сформованих зображень використовується функція imadjust (контрастування з гамма-корегуванням).

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

figure,

imshow (P);

P1=imadjust (P);

figure,

imshow (P1);

figure,

imhist (P);

figure,

imhist (P1);

Рис. 7. Гама-корегування за гістограмою

Також під час вирішення завдань поліпшення зображень використовується функція imfilter в парі з функцією fspecial. Функція fspecial дозволяє задавати різні типи масок фільтру, що підвищує різкість зображення.

4. Фільтрація зображення

Пакет Image Processing Toolbox володіє потужним інструментарієм з фільтрації зображень. Серед вбудованих функцій, які вирішують задачі фільтрації зображень, особливу увагу необхідно приділити функціям fspecial, ordfilt2 (рангова фільтрація), medfilt2 (медіанна фільтрація),

Fspecial є функцією завдання маски зумовленого фільтра. Ця функція дозволяє формувати маски:

— Фільтру, аналогічного послідовному застосуванню фільтрів Гауса і Лапласа:

h= fspecial (`log', hsize, sigma).

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

figure,

imshow (P);

h=fspecial ('log', 4, 0. 85);

P1=imfilter (P, h, 'replicate');

figure,

imshow (P1);

Рис. 8. Фільтр Лапласа-Гауса

5. Сегментація зображення

Серед вбудованих функцій пакету Image Processing Toolbox, які застосовуються при вирішенні завдань сегментації зображень, розглянемо наступні: qtdecomp, edge iroicolor.

Функція qtdecomp виконує сегментацію зображення методом розділення та аналізу однорідності блоків зображення, які не перекриваються.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

P=P (1: 256, 1: 256);

figure,

imshow (P);

S=qtdecomp (P. 38);

blocks=repmat (uint8 (0), size (S));

for dim=[512 256 128 64 32 16 8 4 2 1 0];

numblocks=length (find (S==dim));

if (numblocks > 0)

values=repmat (uint8 (1), [dim dim numblocks]);

values (2: dim, 2: dim:)=0

blocks=qtsetblk (blocks, S, dim, values);

end

end

blocks (end, 1: end)=1;

blocks (1: end, end)=1;

imshow (P),

figure,

imshow (blocks, [])

Рис. 9. Сегментація зображення

Однією з найбільш часто використовуваних є функція виділення меж edge, яка реалізує такі вбудовані методи — Собела, Прево, Робертса, Лапласа-Гауса, Канні та ін.

Розглянемо реалізацію функції edge з використанням фільтру log.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

BW=edge (P, 'log');

figure,

imshow (BW);

title ('log');

Рис. 10. Виділення меж

6. Усунення розмитості зображення за допомогою алгоритму сліпої деконволюції

Деконволюція — це математичний термін, який означає обернену згортку або розгортання. Дана операція використовується при оберненій згортці сигналів, цифровому перетворенні зображень, а також для інших інженерних та наукових операцій.

В загальному випадку метою деконволюції є пошук рішення рівняння згортки, заданого у вигляді:

f*g=h

Де h — записаний сигнал, а f — сигнал, який потрібно відновити, причому відомо. Що перший сигнал отриманий шляхом згортки другого з деяким відомим сигналом — g (наприклад, з імпульсною характеристикою кінцевого імпульсного фільтру). Якщо сигнал g невідомий заздалегідь, його потрібно оцінити. Зазвичай це робиться за допомогою методів статистичного оцінювання.

Алгоритм сліпої деконволюції може бути ефективно використаний при відсутності інформації про спотворення (розмиття і шум). Він належить до алгоритмів одночасного відновлення зображень і функції точок (поширення) розповсюдження (PSF).

Даний алгоритм широко застосовується в системах відеоспостереження, для наведення чіткості отриманого зображення. Для прискорення операції, затухаючий алгоритм Річардсона-Люсі використовується в кожній ітерації при розпізнаванні матриці.

В якості вхідних параметрів для функції відновлення може виступати додаткова оптична система, характеристики якої можуть допомогти підвищити якість відновлення зображень.

PSF-обмеження можуть бути передані через зазначені користувачем допоміжні функції.

Для наглядного прикладу функціонування даного алгоритму візьмемо зображення і виконаємо такі операції перетворення:

— Зчитування;

— Моделювання Blur;

— Відновлення розмитого зображення (використання PSF різних розмірів);

— Аналіз PSF-відтвореного зображення;

— Поліпшення відновлення;

— Використання додаткових обмежень на відновлення PSF.

7. Моделювання Blur

Змоделюємо зображення, яке може бути розмите через рух камери, відсутність фокусу. Зімітуємо розмиття шляхом згортки фільтру Гауса з true image (за допомогою функції imfilter).

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

PSF=fspecial ('gaussian', 7,10);

Blurred=imfilter (I, PSF, 'symmetric', 'conv');

figure;

imshow (Blurred);

title ('Blurred image');

Рис. 11. Розмите зображення

8. Відновлення розмитого зображення

Для того, щоб проілюструвати важливість знання розміру істинного PSF, виконаємо 3 реставрації. Кожного разу, коли виконується відновлення зображення, PSF починається з рівномірності масиву. На початку завжди використовують один масив.

В реставрації, J3 і P3, використовується одиничний масив, INITPSF, для початкової PSF, що має такий же розмір як справжня PSF.

Синтаксис:

P=imread ('c: imagesPicture49. jpg');

PSF=fspecial ('gaussian', 7,10);

Blurred=imfilter (P, PSF, 'symmetric', 'conv');

figure;

imshow (Blurred);

title ('Blurred image');

INITPSF=padarray (PSF, [22], 'replicate', 'both');

[J3 P3]=deconvblind (Blurred, INITPSF);

figure;

imshow (J3);

title ('Dedluring with INITPSF');

Рис. 12. Реставрація по маломірному масиву INITPSF

9. Усунення розмитості зображення з допомогою фільтру Вінера

Деконволюції Вінера використовуються у випадках, коли точка розповсюдження функції і рівень шуму повністю відомі або їх можливо оцінити.

Виконаємо такі операції перетворення:

— Завантаження зображення;

— Імітація Blur ефекту (розмитості);

— Відновлення розмитого зображення.

Завантажимо зображення із подвійною точністю, за допомогою функції im2double:

Функція im2double дозволяє представити всі пікселі матриці зображення у вигляді дійсних чисел подвійної точності. При реалізації цієї функції, на відміну від функції double, здійснюється приведення значень пікселів до необхідного діапазону. Для бінарних, на півтонових і повнокольорних зображень — це діапазон [0, 1], а для па літрових зображень — [1, N], де N — кількість кольорів у палітрі.

Синтаксис:

Р=im2double (imread ('c: imagesPicture49. jpg'));

figure,

imshow (Р);

title ('Original Image (courtesy of MIT)');

Рис. 13. Оригінальне зображення (пом'якшений МІТ)

10. Імітація (Motion Blur) розмитості рухом

Моделювання розмитого зображення, яке може бути отримане від руху камери. Створимо точку розповсюдження функції, PSF, яка буде відповідною лінійному руху в 36пікселів (LEN=36), під кутом 5 градусів (THETA=5). Для імітації розмиття, необхідно виконати згортку фільтра з зображення за допомогою функції: imfilter.

h = fspecial (`motion', len, theta)

Синтаксис:

P=im2double (imread ('c: imagesPicture49. jpg'));

imshow (P);

LEN=36;

THETA=5;

PSF=fspecial ('motion', LEN, THETA);

blurred=imfilter (P, PSF, 'conv', 'circular');

imshow (blurred);

title ('Blurred image');

Рис. 14. Розмите зображення

11. відновлення Розмитого зображення

Функція J=deconvwnr (I, PSF) відновлює зображення P, яке було зіпсовано згорткою з функцією точки розповсюдження PSF і можливим доповненням шуму. Алгоритм оптимізується з точки зору найменшої середньоквадратичної похибки між зображенням що обчислюється та вихідним зображенням і використовує матрицю кореляції та шуму зображення. При відсутності шумової складової, фільтр Вінера перетворюється в ідеальний інверсний фільтр.

У функції J=deconvwnr (I, PSF, NSR) параметр NSR вказує на співвідношення сигнал/шум. Величина NSR є скаляром або масивом, розмірність якого така ж як І. За замовчуванням це значення дорівнює 0.

Найпростіший синтаксис функції deconvwnr записується таким чином:

deconvwnr (А, PSF, NSR),

де, А — змінна, під якою збережено розмите зображення, PSF — точки розповсюдження функції, і NSR — величина співвідношення потужності шуму до потужності сигналу. Оскільки дане розмите зображення формується у 2 кроки без створення шуму, тому ми будемо використовувати 0,01 для NSR.

Синтаксис:

P=im2double (imread ('c: imagesPicture49. jpg'));

imshow (P);

LEN=36;

THETA=5;

PSF=fspecial ('motion', LEN, THETA);

blurred=imfilter (P, PSF, 'conv', 'circular');

imshow (blurred);

title ('Blurred image');

wnr1=deconvwnr (blurred, PSF, 0. 01);

imshow (wnr1);

title ('Restored Image');

Рис. 15. Відновлене зображення

Висновок

Проаналізувавши дану розрахунково-графічну роботу можна прийти до висновку, що система Matlab з пакетом розширення Image Processing Toolbox є масивним, потужним інструментом дослідження та моделювання зображень. Пакет Image Processing Toolbox містить повний набір типових еталонних алгоритмів для обробки і аналізу зображення, в тому числі функцій фільтрації, частотного аналізу, покращення зображення, морфологічного аналізу і розпізнавання.

Виконавши розрахунково-графічну роботу були отримані практичні навички роботи обробки зображень в системі Matlab, до яких відносяться геометричні перетворення зображення (кадрування, зменшення, поворот зображення), аналіз зображення (побудова гістограм зображення, нанесення крапок інтенсивності на зображення), поліпшення зображення (перерозподіл яскравостей, корегування зображення), фільтрація та сегментація зображення (з використанням фільтру Лапласа-Гауса), розмитнення зображення з використанням фільтру Гауса і розмитість супроводжена рухом камери, відновлення зображення фільтром Вінера та відновлення по маломірному масиву INITPSF. Відновлення зображення, як показало виконання роботи відбулося краще фільтром Вінера, ніж відновлення зображення при реставрації по маломірному масиву INITPSF. Що ж до відновлення розмитості зображення супроводжене рухом камери, то зображення ідеально не відновилося через те, що співвідношення потужності шуму до потужності сигналу дорівнювало 0,01. Якби цей показник дорівнював 0, то зображення відновилося б ідеально.

Список використаної літератури

1. Бондарев В. Н., Трёстер Г., Чернеча В. С. Цифровая обработка сигналов: методы и средства: Учеб. Пособие для вузов. — Севастополь: СевГТУ, 1999. — 398 с. :ил.

2. Антонью А. Цифровые фильтры: Анализ и проектирование: Пер с англ. — М.: Радио и связь, 1983.

3. Обробка сигналів: Підручник / Бабак В. П., Хандецький В. С., Шрюфер Е. — К.: Либідь, 1996. — 392 с.

4. Дьяконов В. П., MATLAB 6.5 SP1/7/7 SP1/ Работа с изображениями и видеопотоками. — М.: СОЛОН-Пресс, 2010. — 400 с.

ПоказатьСвернуть
Заполнить форму текущей работой