Лабораторна робота №4
з дисципліни “Проектування комп’ютерних засобів обробки сигналів та зображень” 
Фільтрація сигналів і зображень (в часовій області).
Мета роботи: Ознайомитися з методами та засобами фільтрації в часовій області. Проілюструвати процес фільтрації зображення.
Загальні відомості.
Серед статистичних методів то алгоритмів фільтрації сигналів і зображень найчастіше застосовується екстремальна та медіальна фільтрація. Зокрема, медіальну фільтрацію доцільно використовувати коли сигнал чи зображення являє собою адитивну суміш корисного сигналу та імпульсних завад (тобто, на зображенні спостерігаються білі чи чорні цятки, або “сніг”).
Фільтрація сигналів – це така процедура перетворення сигналу, в результаті дії якої змінюються якісь складові сигналу, або шуму.
В часовій області фільтрація описується рівнянням згортки:
, (1)
де:
- вихідний сигнал;  вхідний сигнал;  імпульсна характеристика фільтру.
Лінійна фільтрація зображень. Процес лінійної фільтрації зображень можна записати:
Застосування фільтрів приводить до погашення шумів, згладжування сигналу чи зображення, виділення контурів зображення та інше. Як правило, фільтрація носить попередній характер обробки і після неї виконується другий етап – проблемно-орієнтований.
Для зображень точок маємо :
, , (2).
де:
та , - задане та фільтроване зображення, відповідно;
P×Q розмір зображення.;
, – імпульсна характеристика фільтру
, (звичайно, M=1,2,3,).
Для і на границі зображення, маємо: .
Алгоритми лінійної фільтрації.
А1.
Алгоритм 1. Прямий.
1. Перший і останній рядки (верхня і нижня границі зображення)
for (p = 0; p < M; p++)
for (q = 0; q < Q; q++)
{ g[p, q]=x[p, q]; g[P-1-p, q]=x[P-1-p, q] };
2. Решта рядків
for (p = M; p < P - M; p++)
{
2.1. Перші і останні M алементів рядка (ліва і права границі зображення)
for (q=0; q < M; q++ )
{ g[p, q]=x[p, q]; g[p, Q-1-q]=x[p,Q-1-q] };
2.2. Решта елементів (основне перетворення)
for (q=M; q < Q - M; q++ )
{
Sum=0.0;
for (i = - M; i < = M; i++ )
for (j = -M; j < = M; j++ )
Sum = Sum +h [i,j] * x[i+p,j+q];
g[p,q] = Sum;
}
}
А2.
Алгоритм 2. Прямий, з мінімізацією необхідної пам’яті.
1. Ініціалізація додаткавої матриці xtemp[p, q] , розміру ( M+1) x Q
for (p = 0; p <= M; p++)
for (q = 0; q < Q; q++)
xtemp[p, q]=x[p, q];
2. Фільтрація
for (p = M; p < P - M; p++)
{
for (q=M; q < Q - M; q++ )
{
Sum=0.0;
for (j = -M; j < = M; j++ )
{
for (i = 1; i < = M; i++ )
Sum = Sum +h [i,j] * x[i+p,j+q];
for (i = -M; i < 1; i++ )
Sum = Sum +h[i,j] * xtemp[i+M,j+q];
}
g[p,q] = Sum;
}
Модифікація матриці xtemp
for (i = 1; q < M; q++)
for (q = 0; q < Q; q++)
xtemp[i-1, q]= xtemp[i, q];
for (q = 0; q < Q; q++)
xtemp[M, q]= x[p+1, q];
}
Порядок виконання роботи.
1. Сформувати вхідне зображення.(власна фотографія у форматі .raw)
2.  Розробити власний, або обрати один з запропонованих алгоритмів (А1,А2) фільтрації і створити програмний засіб, що його реалізовує.
3. Задіяти заданий варіантом фільтр для вхідного зображення.
4. Порівняти вхідне та відфільтроване зображення та зробити висновок про властивості і можливості застосування заданого фільтру.

Вимоги до оформлення звіту з ЛР:
Титульний аркуш.
Завдання на лабораторну роботу.
Теоретичний матеріал стосовно поставленого завдання.
Блок - схема виконання алгоритму фільтрації.
Лістинг програми на довільній мові програмування.
Результати роботи – вхідне і вихідне зображення
Висновки.
Варіанти завдань.

Імпульсна характеристика фільтру

1
h=1/9*[1 1 1;1 1 1;1 1 1];

2
h=1/10*[1 1 1;1 2 1;1 1 1];

3
h=1/16*[1 2 1;2 4 2;1 2 1];

4
h=[0 -1 0;-1 -5 -1;0 -1 0];

5
h=[-1 -1 -1;-1 9 -1;-1 -1 -1];

6
h=[1 -2 1;-2 5 -2;1 -2 1];

7
h=[1 1 1;1 -2 1;-1 -1 -1];

8
Оператор Кірса.
i=0:1:7;
g(n,m)=max(1,max(5*S(i)-3*T(i)))
де :
S(i)=A(i)+A(i+1)+A(i+2);
T(i)=A(i+3)+A(i+4)+A(i+5)+A(i+6)+A(i+7);
а елементи A(i) визначаються як в таблиці 1.
Таблиця 1.
A0 A1 A2
A7 x(n,m) A3
A6 A5 A4

9
h=[-1 1 1;-1 -2 1; -1 1 1];

10
h=[-1 -1 1;-1 -2 1;1 1 1];

11
h=[-1 -1 -1;1 -2 1; 1 1 1];

12
h=[1 -1 -1;-1 -2 1; 1 1 1];

13
Оператор Юліца.
g(n,m)=1/4*log( (abs(x(n,m)))^4 / (A1*A3*A5*A7) );
а елементи Ai визначаються як в таблиці 1.
Таблиця 1.
A0 A1 A2
A7 x(n,m) A3
A6 A5 A4

14
h=[1 1 1;1 -2 -1;1 -1 -1];

15
h=[0 -1 0;-1 -4 -1;0 -1 0];

16
h=[-1 -1 -1;-1 8 -1;-1 -1 -1];

17
h=[1 -2 1;-2 4 -2;1 -2 1];

18
h=[-1 2 -1;-1 2 -1;-1 2 -1];

19
h=[-1 -1 -1;2 2 2 ;-1 -1 -1];

20
h=[-1 -1 2;-1 2 -1;2 -1 -1];

21
Оператор Собеля.
g(n,m)=sqrt(X^2+Y^2);
X=(A2+2*A3+A4)-(A0+2*A7+A6);
Y=(A0+2*A1+A2)-(A6+2*A5+A4);
а елементи A(i) визначаються як в таблиці 1.
Таблиця 1.
A0 A1 A2
A7 x(n,m) A3
A6 A5 A4;

22
Оператор Робертса.
g(n,m)=( (x(n,m)-x(n+1,m+1))^2+(x(n,m+1)-x(n+1,m))^2 )^1/2

23
g(n,m)=abs( (x(n,m)-x(n+1,m+1)) )+ abs( (x(n,m+1)-x(n+1,m)) );

24
h=[2 -1 -1;-1 2 -1;-1 -1 2]

25
h=[1 1 1;-1 -2 1; -1 -1 1];

26
h=[1 1 -1;1 -2 -1; 1 1 -1];

27
h=[-1 -1 -1;0 4 0 ;-1 -1 -1];

28
h=[-1 -1 -1;2 4 2 ;-1 -1 -1];

29
h=[0 0 0 ; 2 2 2 ; 0 0 0];

30
h=[-1 -1 -1;1 16 1 ;-1 -1 -1];