Обробка зображень та мультимедіа

Модуль 1

Лекція 2. Покращення зображень


ЛЕКЦІЯ 2. ПОКРАЩЕННЯ ЗОБРАЖЕНЬ

 

  1. 2.1    АФІННІ ПЕРЕТВОРЕННЯ

Афінні перетворення знаходять широке застосування в задачах машинної графіки. Найбільшого поширення набули часткові випадки афінних перетворень: зсув, поворот, масштабування.

Нехай у площині задана початкова система координат 0ХY і деяка нова система координат 01X1Y1. Тоді перетворення, які полягають у тому, щоб у відповідність точці P площини ставиться точка P1, яка в новій системі має такі самі координати, що й точкаP у початковій, називаються афінними.

Основні властивості афінних перетворень:

  1. *  Множина точок, яка в початковій системі координат задовольняє деяке рівняння, переходить у множину точок, координати яких у новій системі задовольняють таке саме рівняння. Так, пряма переходить у пряму, площина у площину;
  2. *  Відношення площ і об’ємів геометричних фігур зберігається;
  3. *  Зберігається просте співвідношення трьох точок;
  4. *  Існує єдине перетворення площини, що переводить трійку точок, які не належать одній прямій, у нову трійку точок, які також не належать прямій;
  5. *  Якщо початкова та нова системи координат є декартовими з однаковими одиничними відрізками по осях, то при перетвореннях зберігаються всі метричні властивості геометричних фігур.

На рис.1 зображені геометричні співвідношення між початковою системою 0XY і системою 0X1Y1, яку одержали при повороті початкової системи на кут α . За допомогою співвідношень на рис. 1 одержуємо систему рівнянь 

X1 = X cos α  + Y sin α ,  

Y1 = Y cos α  – X sin α ,

яку можна зобразити в матричному вигляді:

При повороті зображення не завжди одержують цілочислові координати, що приводить до необхідності їх округлення. Функціональний метод повороту зображення виключає з обчислювального процесу виконання синусно-косинусних перетворень та «довгих» операцій.

     

Рис. 1. Поворот системи координат

Сутність методу полягає в наступному. Декартова площина 1  і відповідна їй система координат ХОY утворена площиною екрану індикатору зображення, а декартова площина 2  і відповідна їй система координат Х1О1Y1 – площиною матриці світлочутливих елементів (рис.2).

  

Рис. 2. Функціональний метод повороту

В початковий момент часу точка А1 з координатами Х1Y1 відображається на екрані індикатору. Матриця світлочутливих елементів, яку повернуто по відношенню до екрану на кут Δφ, сприймає точку в системі координат  Х1О1Y1, по відношенню до якої остання має координати Х11Y11. Очевидно, що відображаючи на екрані точку з координатами Х11Y11, здійснюється поворот вихідної точки на кут Δφ  в системі координат ХОY. Виконуючи вказану процедуру для всіх точок зображення, за час одного кадру здійснюється поворот зображення на кут  Δφ .

За рахунок повторення процесу n разів, де n= α / Δφ, забезпечується поворот зображення на заданий кут α . Оскільки вихідна та нова системи координат є прямокутними декартовими з однаковими одиничними відрізками по осям, то при перетворенні зберігаються всі метричні властивості геометричних фігур.

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

де  Kx Ky – масштабні коефіцієнти. При  Kx=Ky=K  здійснюється перетворення подібності. Зображення збільшується в K разів при K>1 і зменшується при K<1. Точка зсувається додаванням до кожної координати точки додатної або від'ємної константи:

де m, n – значення параметрів зсуву.

 

  1. 2.2    МОЖЛИВОСТІ ЦИФРОВОЇ ОБРОБКИ ЗОБРАЖЕНЬ В MATLAB

На сьогоднішній день система Matlab, зокрема пакет прикладних програм Іmage Processіng Toolbox, є найбільш потужним інструментом для моделювання й дослідження методів обробки зображень. Він включає велику кількість вбудованих функцій, що реалізують найпоширеніші методи обробки зображень. Розглянемо основні можливості пакета Іmage Processіng Toolbox.

Пакет Іmage Processіng надає широкий спектр засобів для цифрової обробки та аналізу зображень. Будучи тісно зв'язаним із середовищем розробки додатків MATLAB, пакет Іmage Processіng Toolbox звільняє користувача від виконання тривалих операцій кодування та налагодження алгоритмів, дозволяючи зосередити зусилля на рішенні основного наукового або практичного завдання.

Основні властивості пакета:

  відновлення й виділення деталей зображень;

  робота з виділеною ділянкою зображення;

  аналіз зображення;

  лінійна фільтрація;

  перетворення зображень;

  геометричні перетворення;

  збільшення контрастності важливих деталей;

  бінарні перетворення;

  обробка зображень і статистика;

  колірні перетворення;

  зміна палітри;

  перетворення типів зображень.

Пакет Іmage Processіng дає широкі можливості для створення й аналізу графічних зображень у середовищі MATLAB. Цей пакет забезпечує надзвичайно гнучкий інтерфейс, що дозволяє маніпулювати зображеннями, інтерактивно розробляти графічні картини, візуалізувати набори даних і анотувати результати для технічних описів, доповідей і публікацій.

Пакет Іmage Processіng інтенсивно використовується в більш ніж 4000 компаніях і університетах по усьому світі. При цьому є дуже широке коло завдань, які користувачі вирішують за допомогою даного пакета, наприклад космічні дослідження, військові розробки, астрономія, медицина, біологія, робототехніка, матеріалознавство, генетика й т.д. Він включає велику кількість вбудованих функцій, що реалізують найпоширеніші методи обробки зображень. Розглянемо основні можливості пакета Іmage Processіng Toolbox.

 

  1. 2.3    ГЕОМЕТРИЧНІ ПЕРЕТВОРЕННЯ ЗОБРАЖЕНЬ

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

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

     L=imread('airplane.tif');

     imshow(L);

     imcrop;

Рис. 3 Застосування функцій imshow та imcrop

 

У пакеті Іmage Processіng Toolbox існує функція іmrotate, що здійснює поворот зображення на заданий кут.

     L1=imrotate(L,35,'bicubic');

     figure,imshow(L1)

Рис. 4. Застосування функціі imrotate

 

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

 

  1. 2.4    АНАЛІЗ ЗОБРАЖЕНЬ

     Для роботи з окремими елементами зображень використовуються такі функції як іmhіst, іmpіxel, mean2, corr2 та інші. Однією з найбільш важливих характеристик зображення є гістограма розподілу значень інтенсивностей пікселів зображення, яку можна побудувати за допомогою функції іmhіst.

     L=imread('cameraman.tif');

     figure, imshow(L);

     figure, imhist(L);

Рис. 5. Застосування функціі imhist

 

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

L=imread('Air015.jpg');

c = [12 146 410];

r = [104 156 129];

pixels=impixel(L,c,r)

pixels =

  1. 190 190 190
  2. 187 187 187
  3. 202 202 202

Ще одною поширеною функцією є функція mean2 – вона обчислює середнє значення елементів матриці.

B=mean2(L)

B =

          156.6090

Функція corr2 обчислює коефіцієнт кореляції між двома матрицями. Інакше кажучи, за допомогою функції corr2 можна сказати наскільки дві матриці зображення схожі між собою. Ця функція широко застосовується при вирішенні завдань розпізнавання.

 

  1. 2.5    УСУНЕННЯ РОЗМИТТЯ ЗА ДОПОМОГОЮ ФІЛЬТРА ВІНЕРА

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

A=imread('C:\\OLYA\NEW_book\Hibiscus2.jpg');

imshow(A)

     Зімітуємо розмиття зображення, яке може виникнути під час руху камери. Створимо функцію розсіювання точки (point-spread function - PSF), яка відповідає лінійному зсуву вздовж 31 пікселя (LEN=31), при куті нахилу в 11 градусів (THETA=11). Розмите зображення представлено на рисунку 6б)

     LEN = 31;

     THETA = 11;

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

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

     figure, imshow(blurred);

         Для того, щоб підтвердити важливість визначення вірного значення PSF, виконаємо три етапи відновлення. Для першого відновлення wnr1 використаємо PSF, створену на попередньому кроці – рисунок 6в)

     wnr1 = deconvwnr (blurred,PSF);

     figure, imshow(wnr1);

         Для кращої наочності добавимо адитивний шум – рисунок 6г)

     noise = 0.1*randn(size(I));

     blurredNoisy = imadd(blurred,im2uint8(noise));

     figure, imshow(blurredNoisy);

Відновимо розмите та зашумлене зображення використавши інверсну фільтрацію та порівняємо з рисунком 6 в). Але врахуємо, що в цьому випадку зображення було не лише розмите, але й зашумлене – рисунок 6 д)

     wnr4 = deconvwnr(blurredNoisy,PSF);

     figure, imshow(wnr4);

Для контролю посилення шуму передбачимо значення відношення шум - сигнал (noise-to-signal power ratio – NSR) – рисунок 6 е)

     NSR = sum(noise(:).^2)/sum(im2double(I(:)).^2);

     wnr5 = deconvwnr(blurredNoisy,PSF,NSR);

     figure, imshow(wnr5);

Змінимо значення NSR для покращення результатів відновлення. Мале значення NSR value посилює шум – рисунок 6 є)

     wnr6 = deconvwnr(blurredNoisy,PSF,NSR/2);

     figure, imshow(wnr6);

На останньому кроці покращення результатів відновлення зображення застосуємо автокореляційну функцію до шуму NCOR та до сигналу ICOR – рисунок 6 ж)

     NP = abs(fftn(noise)).^2;

     NPOW = sum(NP(:))/prod(size(noise)); % сила шуму

     NCOR = fftshift(real(ifftn(NP)));

     IP = abs(fftn(im2double(A))).^2;

     IPOW = sum(IP(:))/prod(size(A));

     ICOR = fftshift(real(ifftn(IP)));

     wnr7 = deconvwnr(blurredNoisy,PSF,NCOR,ICOR);

     figure, imshow(wnr7);

 

е) Відновлене з NSR

style='font-size:12.0pt'>NSR</p> <>

є) Відновлене з NSR/2

class=string>NSR/2</p>

 

а) Початкове зображення

б) Розмите зображення

в) Відновлене за допомогою PSF

г) Розмите та зашумлене зображення

д) Інверсна фільтрація

е) Відновлене з NSR

ж) Застосування автокореляційної функції

и) Відновлене з NSR/2

 

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


© 2023 СумДУ
created with Lectur'EDbeta