Uploaded by ksklyomina

Лабораторный практикум

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторный практикум
по дисциплине:
«Оптические устройства в радиотехнике»
Мурманск
2018
Оглавление
Введение ....................................................................................................................... 4
1. Теоретические сведения ......................................................................................... 5
1.1 Спектральный анализ оптических изображений. .............................................. 5
1.2 Математические основы оптической обработки информации......................... 7
2. Задание ................................................................................................................... 11
2.1 Лабораторная работа №1 .................................................................................... 11
Задание 1 ................................................................................................................. 11
Задание 2 ................................................................................................................. 13
Задание 3 ................................................................................................................. 16
Задание 4 ................................................................................................................. 19
2.2 Лабораторная работа №2 .................................................................................... 22
Задание 1 ................................................................................................................. 22
Задание 2 ................................................................................................................. 24
Задание 3 ................................................................................................................. 25
Задание 4 ................................................................................................................. 26
Задание 5 ................................................................................................................. 27
2.3 Лабораторная работа №3 .................................................................................... 28
Задание 1 ................................................................................................................. 28
Задание 2 ................................................................................................................. 30
Задание 3 ................................................................................................................. 31
Задание 4 ................................................................................................................. 32
Задание 5 ................................................................................................................. 34
2.4 Лабораторная работа №4 .................................................................................... 35
Задание 1 ................................................................................................................. 35
2
Задание 2 ................................................................................................................. 36
Задание 3 ................................................................................................................. 38
Задание 4 ................................................................................................................. 39
Задание 5 ................................................................................................................. 40
2.5 Лабораторная работа №5 .................................................................................... 41
Задание 1 ................................................................................................................. 41
Задание 2 ................................................................................................................. 43
Задание 3 ................................................................................................................. 45
Задание 4 ................................................................................................................. 46
Задание 5 ................................................................................................................. 47
Приложение 1: Пример выполнения лабораторных работ .................................. 48
Приложение 2: Пример списка литературы .......................................................... 48
3
Введение
Дисциплина «Оптические устройства в радиотехнике» относится к блоку
специальных дисциплин, читаемых
для студентов специальности
«Радиотехника», и является дисциплиной, устанавливаемой ГОС.
Целью преподавания дисциплины является подготовка специалистов в
области основ теории и принципов работы оптических устройств обработки
информации, а также оптических линий связи. В лабораторном практикуме
представлены темы виртуальных лабораторных занятий, а также теоретические
сведения, необходимые для выполнения.
Методические указания предназначены для студентов очной, заочной
и вечерней и дистанционной форм обучения специальности
«Радиоэлектронные системы и комплексы» по дисциплине «Оптические
устройства в радиотехнике».
4
1. Теоретические сведения
1.1 Спектральный анализ оптических изображений.
Из геометрической оптики известно, что линза собирает параллельный
пучок света в точку, расположенную в фокальной плоскости (рисунок 1.1).
Произвольное световое поле можно представить как совокупность плоских
волн (параллельных пучков), падающих на линзу под разными углами. Каждой
такой волне линза ставит в соответствие определенную точку в фокальной
плоскости. При этом распределение света в фокальной плоскости приобретает
форму пространственного спектра поля, падающего на линзу. В этом смысле
линза действует как элемент, выполняющий пространственное спектральное
разложение света, или пространственное преобразование Фурье.
Рисунок 1.1 - Формирование линзой пространственного спектра светового поля
Тот факт, что в фокальной плоскости образуется распределение
интенсивности света, имеющее форму пространственного спектра поля,
падающего на линзу, можно использовать для получения Фурье-спектров
оптических изображений. Для этого достаточно поместить транспарант с
изображением непосредственно перед линзой, направить на него пучок
когерентного света и поместить фотопластинку в задней фокальной плоскости
линзы. Записанное на фотопластинке изображение будет иметь форму
пространственной спектральной плотности изображения на транспаранте.
5
Согласно
теории,
развитой
Аббе,
процесс
формирования
линзой
оптического изображения можно разбить на два этапа: Фурье-анализ волнового
поля объекта и Фурье-синтез изображения. В фокальной плоскости линзы
образуется
распределение
поля,
пропорциональное
Фурье-образу
поля
источника.
Схема формирования изображения по Аббе показана на рисунке 1.2. В
качестве объекта, изображение которого строит линза, выбрана дифракционная
решетка. Так как свет, прошедший через решетку, имеет дискретный угловой
спектр, имеется возможность проследить ход отдельных спектральных
компонент пространственного спектра поля. Как видно из рисунка, на первом
этапе линза осуществляет Фурье-анализ волнового поля, испускаемого
объектом. Эта операция осуществляется в области пространства между линзой
и
ее
задней
фокальной
плоскостью
и
математически
выражается
преобразованием Фурье. Распределение интенсивности света в задней
фокальной
плоскости
линзы
представляет
собой
Фурье-образ
поля,
испускаемого объектом. На втором этапе в процессе свободной дифракции
осуществляется Фурье-синтез изображения. Эта операция происходит в
области пространства между задней фокальной плоскостью линзы и
плоскостью изображения, и математически также выражается преобразованием
Фурье. В итоге в плоскости изображения формируется световое поле, структура
которого повторяет структуру объекта.
Рисунок 1.2 - Формирование изображения по Аббе
6
Помещая в фокальной плоскости линзы диафрагму, экран или фазовую
пластину, можно осуществить такое преобразование углового спектра
излучения, при котором нужные детали изображения будут подчеркнуты, а
помехи удалены. Таким образом, в оптике удается реализовать частотную
фильтрацию оптических полей – операцию, аналогичную фильтрации
электрических колебаний, применяемой в радиотехнике.
1.2 Математические основы оптической обработки информации
Одним из важнейших направлений реализации потенциальных
возможностей оптической обработки информации является использование
аналоговых оптических процессоров. Алгоритмическую основу этого
направления составляет тот факт, что волновой фронт потока излучения,
проходя через линейную оптическую систему, подвергается интегральному
преобразованию в пространстве координат.
Рассмотрим следующую оптическую схему. Пусть свет от очень
маленького источника (который можно считать точечным), расположенного в
точке 0 на плоскости X0OY0, освещает плоскость апертуры ξOη в точке Q и
затем распространяется к точке P, лежащей в плоскости наблюдения XOY.
Найдем значение комплексной амплитуды в плоскости XOY .
Рисунок 1.3 – дифракция Френеля
7
Если углы малы, а апертура задана функцией ψ(ξ,η) , то дифракцию можно
описать следующим интегралом:
где А – постоянная, r и s – расстояния, указанные на рисунке 1.3. Выражение
представляет собой дифракционную формулу Кирхгофа для случая скалярной
волны. Его физический смысл можно легко объяснить следующим образом:
точечный источник, расположенный в точке 0, излучает сферическую волну
exp(ikr) r и заполняет ею всю апертуру ψ(ξ,η) , которая в свою очередь вырезает
часть сферической волны. В апертуре каждая точка волнового фронта
становится новым источником расходящихся сферических волн вида exp(iks) s.
Затем берется интеграл по всем таким точкам в плоскости апертуры. Если
рассматривать дифракционное поле в области, удаленной от экрана на
расстояние, значительно превышающее максимальный размер апертуры, то
интеграл можно упростить. При этом делаются следующие допущения для
знаменателя:
= Z0
Однако для экспоненты такая замена r и s недопустима т.к. на экспоненту
влияет даже малое их изменение. Для получения более точного приближения
воспользуемся членами разложения:
С учетом этого:
8
В случае выполнения условия Френеля расстояния Z и Z0 оказываются
бесконечно большими по сравнению с максимальными размерами апертуры и
тогда квадратичные множители исчезают, и распределение комплексных
амплитуд запишется в виде:
Здесь U и V – так называемые пространственные частоты, величины
обратно
пропорциональные
пространственным
периодам
распределения
амплитуд светового поля в плоскости апертуры. Причем пространственные
частоты связаны с координатами в плоскости преобразования следующим
образом:
Данное выражение описывает дифракцию Фраунгофера, в которой имеет
место постоянная функциональная связь между апертурной функцией ψ(ξ,η) и
полем ψ(x, y). В данном случае ψ(x, y) и ψ(ξ,η) образуют пару функций,
связанных преобразованием Фурье. Таким образом, в классической дифракции
Фраунгофера распределение комплексных амплитуд в плоскости наблюдения
есть Фурье-образ функции распределения светового поля в плоскости
апертуры.
Приближение дальней зоны для Z выполняется, если картину дифракции
Фраунгофера отобразить с помощью линзы, дающей изображение дальнего
поля. При этом картина дифракции Фраунгофера или Фурье-образ апертурной
9
функции локализуется в фокальной плоскости линзы. Таким образом, говорят,
что оптическая система, состоящая из источника когерентного оптического
излучения, дающего плоский волновой фронт транспаранта и линзы,
осуществляет в фокальной плоскости линзы Фурье-преобразование двумерной
функции пропускания оптического транспаранта.
Функция ψ( x, y), описывающая результат дифракции, в пространственных
частотах U и V после соответствующего преобразования будет иметь вид:
где f – фокусное расстояние линзы согласно рисунку 1.4.
Рисунок 1.4 - дифракция Фраунгофера
10
2. Задание
2.1 Лабораторная работа №1
«Двумерное преобразование Фурье изображений»
Задание 1
1. Согласно варианту (таблица 1.1) координат центра и радиуса сформировать
файл
цифрового
изображения
красного
круга
на
черном
фоне
image_color_3_crug_bmp.m.
2. На основе файла полученного в 1 пункте и параметру ослабления (таблица
1.1) заданного в варианте сформировать файл изображения дифракционной
картины image_color_7_spec_bmp.m.
3. Сделать выводы
Таблица 1.1
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
m0
288
320
352
384
416
448
480
512
544
576
608
640
672
704
736
288
320
352
384
416
448
480
512
544
576
n0
512
544
576
608
640
672
704
736
288
320
352
384
416
448
480
512
544
576
608
640
672
704
736
288
320
11
r
32
64
128
256
64
128
256
32
128
256
32
64
256
32
64
128
32
64
128
256
64
128
256
32
128
para_osla
1
1.2
1.6
1.2
1.3
1.2
1.4
1.1
1.3
1.5
1.2
1.4
1.6
1.3
1.5
1.4
1.4
1.6
1.8
1.7
1.7
1.5
1.8
1.5
1.6
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=288;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
Текст программы image_color_7_spec_bmp.m:
clear all;
para_osla=1.4;
%color image input
filename='Красный круг на
фоне_colorR';suff='.bmp';suffix='bmp';% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename
sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*b
R;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*b
G;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*b
B;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
12
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R' suff]);
Задание 2
1. Согласно варианту (таблица 1.2) координат левого верхнего угла и
размеров сторон сформировать файл цифрового изображения красного
прямоугольника на черном фоне rectang_window__color_1.m.
2. На основе файла полученного в 1 пункте и параметру ослабления
(таблица 1.2) заданного в варианте сформировать файл изображения
дифракционной картины image_color_4_spec_bmp.m.
3. Сделать выводы
Таблица 1.2
№пп
k_m1
k_m
k _n1
k _n
n_m1
n_m
n_n1
n_n
para_osla
1
2
128
160
160
192
32
32
32
64
1
1.1
13
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
192
224
256
128
160
192
224
256
128
160
192
224
256
128
160
192
224
256
128
160
192
224
256
224
256
128
192
224
256
128
160
224
256
128
160
192
160
192
224
256
128
192
224
256
128
160
32
32
64
64
64
64
96
96
96
96
128
128
128
16
16
16
16
32
32
32
32
48
48
96
128
32
64
96
128
32
64
96
128
32
64
96
32
64
96
128
32
64
96
128
32
64
1.2
1.3
1.4
1.5
1.6
1. 1
1. 2
1. 3
1
1
1.1
1.2
1.3
1
1. 3
1. 2
1. 1
1.6
1.5
1.4
1.3
1.2
1.1
Текст программы rectang_window__color_1.m:
clear all;
para_osla=1.0;
%color image input
filename='Красный прямоугольник на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename
sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*b
R;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*b
G;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*b
B;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
14
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R' suff]);
Текст программы image_color_4_spec_bmp.m:
clear all;
M=1024; N=1024;
n_m=32;n_n=256;k_m=256;k_n=256;
%color rectangular creation
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
sqR=uint8(zeros(n_m,n_n));
sqG=uint8(zeros(n_m,n_n));
sqB=uint8(zeros(n_m,n_n));
for m=1:n_m,
for n=1:n_n,
sqR(m,n)=uint8(255);
sqG(m,n)=uint8(0);
sqB(m,n)=uint8(0);
end;
end;
sqCO(:,:,1)=sqR;
sqCO(:,:,2)=sqG;
sqCO(:,:,3)=sqB;
15
imAGE=imFON;
for m=k_m:n_m+k_m-1,
for n=k_n:n_n+k_n-1,
imAGE(m,n,:)=sqCO(m-k_m+1,n-k_n+1,:);
end;
end;
imwrite(imAGE,'Красный прямоугольник на фоне.bmp','bmp');
Задание 3
1. Согласно варианту (таблица 1.2, таблица 1.3) координат левого верхнего
угла и размеров сторон
сформировать файл цифрового изображения
двух красных прямоугольников на черном фоне
two_rectang_window__color_1.m.
2. На основе файла полученного в 1 пункте и параметру ослабления
(таблица 1.2) заданного в варианте сформировать файл изображения
дифракционной картины image_color_5_spec_bmp.m.
3. Сделать выводы
Таблица 1.3
№
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
k_m2
192
224
256
289
352
284
256
288
352
384
256
288
352
384
416
192
224
256
289
k_n2
224
288
352
416
192
288
352
416
192
256
352
416
192
256
320
224
288
352
416
n_m2
32
32
32
32
64
64
64
64
96
96
96
96
128
128
128
16
16
16
16
n_n2
16
32
48
64
16
32
48
64
16
32
48
64
16
32
48
16
32
48
64
k_m3
256
288
320
352
448
320
352
384
480
512
384
416
512
544
576
256
288
320
352
16
k_n3
320
384
448
512
288
384
448
512
288
352
448
512
288
352
416
320
384
448
512
n_m3
32
32
32
32
64
64
64
64
96
96
96
96
128
128
128
64
64
64
64
n_n3
16
128
192
256
64
128
192
256
64
128
192
256
64
128
192
16
128
192
256
20
21
22
23
24
25
352
284
256
288
352
384
192
288
352
416
192
256
32
32
32
32
48
48
16
32
48
64
16
32
448
320
352
384
480
512
288
384
448
512
288
352
Текст программы two_rectang_window__color_1.m:
clear all;
M=1024; N=1024;
n_m1=16;n_n1=32;k_m1=128;k_n1=160;
n_m2=16;n_n2=16;k_m2=192;k_n2=224;
%color 3 rectangular
creation
%FFon BEGIN
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
%FFon END
%First rectangular BEGIN
sqR1=uint8(zeros(n_m1,n_n1));
sqG1=uint8(zeros(n_m1,n_n1));
sqB1=uint8(zeros(n_m1,n_n1));
for m=1:n_m1,
for n=1:n_n1,
sqR1(m,n)=uint8(255);
sqG1(m,n)=uint8(0);
sqB1(m,n)=uint8(0);
end;
end;
sqCO1(:,:,1)=sqR1;
sqCO1(:,:,2)=sqG1;
sqCO1(:,:,3)=sqB1;
imAGE=imFON;
for m=k_m1:n_m1+k_m1-1,
for n=k_n1:n_n1+k_n1-1,
imAGE(m,n,:)=sqCO1(m-k_m1+1,n-k_n1+1,:);
end;
end;
%First rectangular END
%Two rectangular BEGIN
17
128
128
128
128
192
192
64
128
192
256
64
128
sqR2=uint8(zeros(n_m2,n_n2));
sqG2=uint8(zeros(n_m2,n_n2));
sqB2=uint8(zeros(n_m2,n_n2));
for m=1:n_m2,
for n=1:n_n2,
sqR2(m,n)=uint8(255);
sqG2(m,n)=uint8(0);
sqB2(m,n)=uint8(0);
end;
end;
sqCO2(:,:,1)=sqR2;
sqCO2(:,:,2)=sqG2;
sqCO2(:,:,3)=sqB2;
for m=k_m2:n_m2+k_m2-1,
for n=k_n2:n_n2+k_n2-1,
imAGE(m,n,:)=sqCO2(m-k_m2+1,n-k_n2+1,:);
end;
end;
%Two rectangular END
imwrite(imAGE,'Два красных прямоугольника на
фоне.bmp','bmp');
Текст программы image_color_5_spec_bmp.m:
clear all;
para_osla=1.0;
%color image input
filename='Два красных прямоугольника на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename
sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
18
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R' suff]);
Задание 4
1. Согласно варианту (таблица 1.2, таблица 1.3) координат левого верхнего
угла и размеров сторон сформировать файл цифрового изображения трех
красных прямоугольников на черном фоне
try_rectang_window__color_1.m.
2. На основе файла полученного в 1 пункте и параметру ослабления
(таблица 1.2) заданного в варианте сформировать файл изображения
дифракционной картины image_color_6_spec_bmp.m.
3. Сделать выводы
Текст программы try_rectang_window__color_1.m:
clear all;
para_osla=1.0;
%color image input
filename='Три красных прямоугольника на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename
sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
19
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R' suff]);
Текст программы image_color_6_spec_bmp.m:
clear all;
M=1024; N=1024;
n_m1=16;n_n1=32;k_m1=128;k_n1=160;
n_m2=16;n_n2=16;k_m2=192;k_n2=224;
n_m3=64;n_n3=16;k_m3=256;k_n3=320;
%color 3 rectangular
creation
%FFon BEGIN
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
%FFon END
%First rectangular BEGIN
sqR1=uint8(zeros(n_m1,n_n1));
sqG1=uint8(zeros(n_m1,n_n1));
sqB1=uint8(zeros(n_m1,n_n1));
for m=1:n_m1,
for n=1:n_n1,
sqR1(m,n)=uint8(255);
sqG1(m,n)=uint8(0);
sqB1(m,n)=uint8(0);
end;
end;
sqCO1(:,:,1)=sqR1;
20
sqCO1(:,:,2)=sqG1;
sqCO1(:,:,3)=sqB1;
imAGE=imFON;
for m=k_m1:n_m1+k_m1-1,
for n=k_n1:n_n1+k_n1-1,
imAGE(m,n,:)=sqCO1(m-k_m1+1,n-k_n1+1,:);
end;
end;
%First rectangular END
%Second rectangular BEGIN
sqR2=uint8(zeros(n_m2,n_n2));
sqG2=uint8(zeros(n_m2,n_n2));
sqB2=uint8(zeros(n_m2,n_n2));
for m=1:n_m2,
for n=1:n_n2,
sqR2(m,n)=uint8(255);
sqG2(m,n)=uint8(0);
sqB2(m,n)=uint8(0);
end;
end;
sqCO2(:,:,1)=sqR2;
sqCO2(:,:,2)=sqG2;
sqCO2(:,:,3)=sqB2;
for m=k_m2:n_m2+k_m2-1,
for n=k_n2:n_n2+k_n2-1,
imAGE(m,n,:)=sqCO2(m-k_m2+1,n-k_n2+1,:);
end;
end;
%Second rectangular END
%Third rectangular BEGIN
sqR3=uint8(zeros(n_m3,n_n3));
sqG3=uint8(zeros(n_m3,n_n3));
sqB3=uint8(zeros(n_m3,n_n3));
for m=1:n_m3,
for n=1:n_n3,
sqR3(m,n)=uint8(255);
sqG3(m,n)=uint8(0);
sqB3(m,n)=uint8(0);
end;
end;
sqCO3(:,:,1)=sqR3;
sqCO3(:,:,2)=sqG3;
sqCO3(:,:,3)=sqB3;
for m=k_m3:n_m3+k_m3-1,
for n=k_n3:n_n3+k_n3-1,
21
imAGE(m,n,:)=sqCO3(m-k_m3+1,n-k_n3+1,:);
end;
end;
%Third rectangular END
imwrite(imAGE,'Три красных прямоугольника на
фоне.bmp','bmp');
2.2 Лабораторная работа №2
«Низкочастотная и высокочастотная фильтрация изображений с помощью
фильтров с прямоугольными окнами»
Задание 1
Согласно
варианту
(таблица
2.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3.bmp.
Текст программы и изображения представить в пояснительной записке.
Таблица 2.1
№пп
m0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n0
512
256
768
512
512
256
256
768
768
512
256
768
512
512
256
r
512
256
768
256
768
512
768
512
256
512
256
768
256
768
512
22
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
16
256
768
17
768
512
18
768
256
19
512
512
20
256
256
21
768
672
22
512
256
23
512
736
24
256
512
25
256
320
Текст программы image_color_3_crug_bmp.m:
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=288;n0=512;r=16;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
23
Задание 2
Согласно варианту (таблица 2.2) сформировать изображения транспаранта
для низкочастотного фильтра с прямоугольным окном на основе программы
low_fil_M_K1_K2.m. Имена файлов изображений будут включать параметры
окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Таблица 2.2
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
K1, K2
16,16
24,24
32,32
40,40
48,48
16, 16
24,24
32,32
40,40
48,48
16, 16
24,24
32,32
40,40
48,48
16, 16
24,24
32,32
40,40
48,48
16, 16
24,24
32,32
40,40
256
Текст программы low_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
24
K1, K2
16,32
16,64
24,48
24,96
32, 64
32, 128
40,80
40,160
48,96
48,192
16,32
16,64
24,48
24,96
32, 64
32, 128
40,80
40,160
48,96
48,192
16,32
16,64
24,48
24,96
32, 64
K1=20 ;
K2=30 ;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Low_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Задание 3
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов низкочастотного фильтра (имя вида
Low_fil_1024_20_30.bmp)с помощью
программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Low_fil_1024_20_30'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
25
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Задание 4
Согласно варианту (таблица 2) сформировать изображения транспаранта
для высокочастотного фильтра с прямоугольным окном на основе программы
high_fil_M_K1_K2.m. Имена файлов изображений будут включать параметры
окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Текст программы high_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=20;
K2=30;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
end;
26
end
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['High_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Задание 5
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов высокочастотного фильтра (имя вида
High_fil_1024_20_30.bmp)с помощью программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Low_fil_1024_20_30'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
27
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
2.3 Лабораторная работа №3
«Полосовая и режекторная фильтрация изображений с помощью фильтров с
прямоугольными окнами»
Задание 1
Согласно
варианту
(таблица
3.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный круг на фоне_colorR1.bmp, Красный круг на
фоне_colorR2.bmp, Красный круг на фоне_colorR3.bmp. Текст программы и
изображения представить в пояснительной записке.
Таблица 3.1
№пп
m0
1
2
3
4
5
6
7
8
9
n0
512
256
768
512
512
256
256
768
768
r
512
256
768
256
768
512
768
512
256
28
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
512
256
768
512
512
256
256
768
768
512
256
768
512
512
256
256
512
256
768
256
768
512
768
512
256
512
256
672
256
736
512
320
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=288;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
29
Задание 2
Согласно варианту (таблица 3.2) сформировать изображения транспаранта
для полосового фильтра с прямоугольным окном на основе программы
Band_fil_M_K11_K12_K21_K22.m.
Имена
файлов
изображений
будут
включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Таблица 3.2
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
K11, K12, K21,
K22
40,80,100,120
40,100,120,140
40,120,80,160
40,160,40,160
80,120,80,120
120,160,120,160
120,240,100,200
120,240,200,400
80,100,100,120
100,120,120,180
160,200,200,240
160,200,160,200
240,280,240,280
40,160,160,320
80,200,240,480
40,80,100,120
40,100,120,140
40,120,80,160
40,160,40,160
80,120,80,120
120,160,120,160
120,240,100,200
120,240,200,400
80,100,100,120
100,120,120,180
30
K11, K12, K21,
K22
20,80,200,360
40,160,200,360
40,180,200,360
80,320,160,320
100,160,120,240
160,200,180,300
120,300,200,400
60,120,200,600
40,50,200,240
50,240,240,480
320,400,100,120
80,400,80,400
480,140,480,140
160,240,160,240
80,400,120,600
20,80,200,360
40,160,200,360
40,180,200,360
80,320,160,320
100,160,120,240
160,200,180,300
120,300,200,400
60,120,200,600
40,50,200,240
50,240,240,480
Текст программы Band_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=20;
K12=50;
K21=30;
K22=40;
n_m=16;n_n=32;k_m=128;k_n=160;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(255);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Band_fil_' int2str(M) '_' int2str(K11)
'_' int2str(K12) '_' int2str(K21) '_' int2str(K22)
'.bmp']);
Задание 3
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов полосового фильтра (имя вида
Band_fil_1024_20_50_30_40.bmp)
с
помощью
программы
filter.m.
В
пояснительной записке поместить все исходные изображения и, для каждого
31
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Band_fil_1024_20_50_30_40';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Задание 4
Согласно
варианту
(таблица
3.2)
сформировать
изображения
транспаранта для режекторного фильтра с прямоугольным окном на основе
программы Reject_fil_M_K11_K12_K21_K22.m. Имена файлов изображений
32
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Текст программы Reject_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=16;
K12=26;
K21=36;
K22=50;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
end;
end
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(0);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Reject_fil_' int2str(M) ' _' int2str(K11)
'_' int2str(K12) ' _' int2str(K21) '_' int2str(K22)
'.bmp']);
33
Задание 5
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов режекторного фильтра (имя вида
Reject_fil_1024 _16_26 _36_50.bmp) с помощью
программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Reject_fil_1024_20_50_30_40';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
34
2.4 Лабораторная работа №4
«Фильтрация изображений с помощью фильтров с прямоугольными окнами»
Задание 1
Согласно
варианту
(таблица
4.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3. Текст программы и
изображения представить в пояснительной записке.
Таблица 4.1
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
m0
512
256
768
512
512
256
256
768
768
512
256
768
512
512
256
256
768
768
512
256
768
512
512
256
256
n0
512
256
768
256
768
512
768
512
256
512
256
768
256
768
512
768
512
256
512
256
672
256
736
512
320
35
r
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=288;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
Задание 2
Согласно варианту (таблица 4.2, таблица 4.3) сформировать изображения
транспаранта для низкочастотного фильтра с прямоугольным окном на основе
программы low_fil_M_K1_K2.m. Имена файлов изображений будут включать
параметры окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Таблица 4.2
№пп
1
2
3
K1, K2
16, 1022
24, 1022
32, 1022
Таблица 4.3
№пп
1
2
3
K1, K2
48,1022
72,1022
96,1022
36
K1, K2
1022,32
1022,64
1022,48
K1, K2
1022 ,16
1022 ,16
1022 ,24
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
40, 1022
48, 1022
16, 1022
24, 1022
32, 1022
40, 1022
48, 1022
16, 1022
24, 1022
32, 1022
40, 1022
48, 1022
16, 1022
24, 1022
32, 1022
40, 1022
48, 1022
16, 1022
24, 1022
32, 1022
40, 1022
120,1022
144,1022
48,1022
72,1022
96,1022
120,1022
144,1022
48,1022
72,1022
96,1022
120,1022
144,1022
48,1022
72,1022
96,1022
120,1022
144,1022
48,1022
72,1022
96,1022
120,1022
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Текст программы low_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=1022;
K2=10 ;
%color rectangular
creation
imR=uint8(zeros(M,M));
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
37
1022,24
1022,64
1022,128
1022,80
1022,160
1022,96
1022,192
1022,32
1022,64
1022,48
1022,96
1022,64
1022,128
1022,80
1022,160
1022,96
1022,192
1022,32
1022,64
1022,48
1022,96
1022 ,72
1022 ,32
1022 ,32
1022 ,40
1022 ,40
1022 ,48
1022 ,48
1022 ,16
1022 ,16
1022 ,24
1022 ,24
1022 ,32
1022 ,32
1022 ,40
1022 ,40
1022 ,48
1022 ,48
1022 ,16
1022 ,16
1022 ,24
1022 ,24
imAGE=imFON;
imwrite(imAGE,['Low_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Задание 3
Для каждого из 3-х изображений круга
(Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов низкочастотного фильтра (имя вида
Low_fil_1024_20_30.bmp)с помощью
программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Low_fil_1024_1022_10'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
38
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Задание 4
Согласно варианту (таблица 4.1, таблица 4.2, таблица 4.3) сформировать
изображения транспаранта для высокочастотного фильтра с прямоугольным
окном на основе программы high_fil_M_K1_K2.m. Имена файлов изображений
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Текст программы high_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=1022;
K2=10;
%color rectangular
creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
end;
end
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
39
imAGE=imFON;
imwrite(imAGE,['High_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Задание 5
Для каждого из 3-х изображений круга
(Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов высокочастотного фильтра (имя вида
High _fil_1024_20_30.bmp) с помощью программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Здесь же представить текст программы.
Текст программы filter.m :
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='High_fil_1024_1022_10';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
40
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
2.5 Лабораторная работа №5
«Фильтрация изображений с помощью фильтров с прямоугольными окнами»
Задание 1
Согласно
варианту
(таблица
5.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3. Текст программы и
изображения представить в пояснительной записке.
Таблица 5.1
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
m0
512
256
768
512
512
256
256
768
768
512
256
768
512
512
256
256
768
n0
512
256
768
256
768
512
768
512
256
512
256
768
256
768
512
768
512
41
r
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
18
19
20
21
22
23
24
25
768
512
256
768
512
512
256
256
256
512
256
672
256
736
512
320
48,24,12
112,56,28
144,72,36
160,80,40
128,64,32
64,32,16
80,40,20
48,24,12
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=288;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
42
Задание 2
Согласно варианту (таблица 5.2, таблица 5.3) сформировать изображения
транспаранта для полосового фильтра с прямоугольным окном на основе
программы
Band_fil_M_K11_K12_K21_K22.m. Имена файлов изображений
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Таблица 5.2
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
K11, K12, K21, K22
40,80,1022,1022
40,100,1022,1022
40,120,1022,1022
40,160,1022,1022
80,120,1022,1022
120,160,1022,1022
120,240,1022,1022
120,240,1022,1022
80,100, 1022,1022
100,120,1022,1022
160,200,1022,1022
160,200,1022,1022
240,280,1022,1022
40,160, 1022,1022
80,200, 1022,1022
40,80, 1022,1022
40,100, 1022,1022
40,120, 1022,1022
40,160, 1022,1022
80,120, 1022,1022
120,160,1022,1022
120,240,1022,1022
120,240,1022,1022
80,100, 1022,1022
100,120,1022,1022
160,200,1022,1022
160,200,1022,1022
240,280,1022,1022
40,160, 1022,1022
80,200, 1022,1022
43
K11, K12, K21, K22
100,120,1022,1022
120,140,1022,1022
80,160,1022,1022
120,480,1022,1022
80,120,1022,1022
120,160,1022,1022
100,200,1022,1022
200,400,1022,1022
100,120,1022,1022
120,180,1022,1022
200,240,1022,1022
320,400,1022,1022
480,560,1022,1022
160,320,1022,1022
240,480,1022,1022
100,120,1022,1022
120,140,1022,1022
80,160,1022,1022
120,480,1022,1022
240,360,1022,1022
120,160,1022,1022
100,200,1022,1022
200,400,1022,1022
100,120,1022,1022
120,180,1022,1022
200,240,1022,1022
320,400,1022,1022
480,560,1022,1022
160,320,1022,1022
240,480,1022,1022
Таблица 5.3
№пп
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
K11, K12, K21, K22
1022,1022, 20,80
1022,1022, 40,160
1022,1022, 40,180
1022,1022, 80,320
1022,1022,100,160
1022,1022,160,200
1022,1022,120,300
1022,1022, 60,120
1022,1022,40,50
1022,1022, 50,240
1022,1022,320,400
1022,1022, 80,400
1022,1022,480,140
1022,1022,160,240
1022,1022, 80,400
1022,1022, 20,80
1022,1022, 40,160
1022,1022, 40,180
1022,1022, 80,320
1022,1022,100,160
1022,1022,160,200
1022,1022,120,300
1022,1022, 60,120
1022,1022, 40,50
1022,1022, 50,240
1022,1022,320,400
1022,1022, 80,400
1022,1022,480,140
1022,1022,160,240
1022,1022, 80,400
K11, K12, K21, K22
1022,1022,200,360
1022,1022,200,360
1022,1022,200,360
1022,1022,160,320
1022,1022,120,240
1022,1022,180,300
1022,1022,200,400
1022,1022,200,600
1022,1022,200,240
1022,1022,240,480
1022,1022,100,120
1022,1022,160,200
1022,1022,240,70
1022,1022,320,480
1022,1022,120,600
1022,1022,200,360
1022,1022,200,360
1022,1022,200,360
1022,1022,160,320
1022,1022,120,240
1022,1022,180,300
1022,1022,200,400
1022,1022,200,600
1022,1022,200,240
1022,1022,240,480
1022,1022,100,120
1022,1022,160,400
1022,1022,240,280
1022,1022,320,480
1022,1022,120,600
Текст программы Band_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=1022;
K12=1022;
K21=20;
K22=100;
n_m=16;n_n=32;k_m=128;k_n=160;
44
%color rectangular
creation
imR=uint8(zeros(M,M));
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(255);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Band_fil_' int2str(M) '_' int2str(K11)
'_' int2str(K12) '_' int2str(K21) '_' int2str(K22)
'.bmp']);
Задание 3
Для каждого из 3-х изображений круга (Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов полосового фильтра (имя вида
Band_fil_1024_20_50_30_40.bmp) с помощью программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
45
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Band_fil_1024_1022_10';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Задание 4
Согласно варианту (таблица 5.2, таблица 5.3) сформировать изображения
транспаранта для режекторного фильтра с прямоугольным окном на основе
программы Reject_fil_M_K11_K12_K21_K22.m. Имена файлов изображений
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Текст программы Reject_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
46
K11=36;
K12=250;
K21=1022;
K22=1022;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
end;
end
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(0);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Reject_fil_' int2str(M) ' _' int2str(K11)
'_' int2str(K12) ' _' int2str(K21) '_' int2str(K22)
'.bmp']);
Задание 5
Для каждого из 3-х изображений круга
(Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов режекторного фильтра (имя вида
Reject_fil_1024 _16_26 _36_50.bmp)с помощью
программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
47
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Reject_fil_1024_1022_10';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
48
Приложение 1
Пример выполнения
лабораторных работ:
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторная работа №1
по дисциплине:
«Оптические устройства в радиотехнике»
по теме:
«Двумерное преобразование Фурье изображений»
Выполнил:
студент группы
Дата____________________
Подпись_________________
Проверил:
Жарких А.А.
Дата____________________
Подпись_________________
Мурманск
2018
49
Задание 1
1.
Согласно
варианту
1.1)
(таблица
координат
центра
и
радиуса
сформировать файл цифрового изображения красного круга на черном
фоне image_color_3_crug_bmp.m.
2.
На основе файла полученного в 1 пункте и параметру ослабления
(таблица 1.1) заданного в варианте сформировать файл изображения
дифракционной картины image_color_7_spec_bmp.m.
3.
Сделать выводы
Таблица 1.1
№пп
5
m0
416
n0
640
r
64
para_osla
1.3
clear all;
%color image input
filename='Красныйкругнафоне';suff='.bmp';suffix='bmp';%
sukf='.jpg';
m=1024;n=1024;m0=416;n0=640;r=64;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(kn-n0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor'R'suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
clearall;
para_osla=1.3;
%color image input
filename='Красныйкругнафоне_colorR';suff='.bmp';suffix='bmp';%
sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
50
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(-para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R'suff]);
Рисунок 1 - цифровое изображение красного круга на черном фоне
51
Рисунок 2 - дифракционная картина красного круга на черном фоне
Задание 2
Согласно варианту (таблица 1.2) координат левого верхнего угла и
1.
размеров сторон сформировать файл цифрового изображения красного
прямоугольника на черном фоне rectang_window__color_1.m.
На основе файла полученного в 1 пункте и параметру ослабления
2.
(таблица 1.2) заданного в варианте сформировать файл изображения
дифракционной картины image_color_4_spec_bmp.m.
Сделать выводы
3.
Таблица 1.2
№пп
k_m1
k_m
k _n1
k _n
n_m1
n_m
n_n1
n_n
para_osla
5
256
128
64
32
1.4
clearall;
para_osla=1.4;
%color image input
filename='Красныйпрямоугольникнафоне';suff='.bmp';suffix='bmp';%
sukf='.jpg';
52
xc=imread([filename suff],suffix);%imwrite(xc,[ filename sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(-para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R'suff]);
clearall;
M=1024; N=1024;
n_m=64;n_n=32;k_m=256;k_n=128;
%color rectangular creation
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
sqR=uint8(zeros(n_m,n_n));
sqG=uint8(zeros(n_m,n_n));
sqB=uint8(zeros(n_m,n_n));
for m=1:n_m,
for n=1:n_n,
sqR(m,n)=uint8(255);
sqG(m,n)=uint8(0);
sqB(m,n)=uint8(0);
end;
end;
sqCO(:,:,1)=sqR;
sqCO(:,:,2)=sqG;
sqCO(:,:,3)=sqB;
imAGE=imFON;
for m=k_m:n_m+k_m-1,
53
for n=k_n:n_n+k_n-1,
imAGE(m,n,:)=sqCO(m-k_m+1,n-k_n+1,:);
end;
end;
imwrite(imAGE,'Красный прямоугольник на фоне.bmp','bmp');
Рисунок 3 - цифровое изображение красного прямоугольника на черном фоне
Рисунок 4 - дифракционная картина красного прямоугольника на черном фоне
54
Задание 3
1.
Согласно варианту (таблица 1.3) координат левого верхнего угла и
размеров сторон
красных
сформировать файл цифрового изображения двух
прямоугольников
на
черном
фоне
two_rectang_window__color_1.m.
2.
На основе файла полученного в 1 пункте и параметру ослабления
(таблица 1.2), заданного в варианте, сформировать файл изображения
дифракционной картины image_color_5_spec_bmp.m.
3.
Сделать выводы
Таблица 1.3
№
5
k_m2
352
k_n2
192
n_m2
64
n_n2
16
k_m3
448
clear all;
M=1024; N=1024;
n_m2=64;n_n2=16;k_m2=352;k_n2=448;
n_m3=64;n_n3=64;k_m3=192;k_n3=288;
%color 3 rectangular
creation
%FFon BEGIN
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
%FFon END
%First rectangular BEGIN
sqR1=uint8(zeros(n_m1,n_n1));
sqG1=uint8(zeros(n_m1,n_n1));
sqB1=uint8(zeros(n_m1,n_n1));
for m=1:n_m1,
for n=1:n_n1,
sqR1(m,n)=uint8(255);
sqG1(m,n)=uint8(0);
sqB1(m,n)=uint8(0);
end;
end;
sqCO1(:,:,1)=sqR1;
sqCO1(:,:,2)=sqG1;
sqCO1(:,:,3)=sqB1;
imAGE=imFON;
for m=k_m1:n_m1+k_m1-1,
55
k_n3
288
n_m3
64
n_n3
64
for n=k_n1:n_n1+k_n1-1,
imAGE(m,n,:)=sqCO1(m-k_m1+1,n-k_n1+1,:);
end;
end;
%First rectangular END
%Two rectangular BEGIN
sqR2=uint8(zeros(n_m2,n_n2));
sqG2=uint8(zeros(n_m2,n_n2));
sqB2=uint8(zeros(n_m2,n_n2));
for m=1:n_m2,
for n=1:n_n2,
sqR2(m,n)=uint8(255);
sqG2(m,n)=uint8(0);
sqB2(m,n)=uint8(0);
end;
end;
sqCO2(:,:,1)=sqR2;
sqCO2(:,:,2)=sqG2;
sqCO2(:,:,3)=sqB2;
for m=k_m2:n_m2+k_m2-1,
for n=k_n2:n_n2+k_n2-1,
imAGE(m,n,:)=sqCO2(m-k_m2+1,n-k_n2+1,:);
end;
end;
%Two rectangular END
imwrite(imAGE,'Двакрасныхпрямоугольниканафоне.bmp','bmp');
clearall;
para_osla=1.4;
%color image input
filename='Двакрасныхпрямоугольниканафоне';suff='.bmp';suffix='bmp'
;% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
56
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(-para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R'suff]);
Рисунок 5 - цифровое изображение двух красных прямоугольников на черном фоне
Рисунок 6 - дифракционная картина двух красных прямоугольников на черном фоне
57
Задание 4
1.
Согласно варианту (таблица 1.2, таблица 1.3) координат левого верхнего
угла и размеров сторон сформировать файл цифрового изображения трех
красных
прямоугольников
на
черном
фоне
try_rectang_window__color_1.m.
2.
На основе файла полученного в 1 пункте и параметру ослабления,
(таблица 1.2), заданного в варианте, сформировать файл изображения
дифракционной картины image_color_6_spec_bmp.m.
3.
Сделать выводы.
clear all;
para_osla=1.4;
%color image input
filename='Трикрасныхпрямоугольниканафоне';suff='.bmp';suffix='bmp'
;% sukf='.jpg';
xc=imread([filename suff],suffix);%imwrite(xc,[ filename sukf]);
bR=xc(:,:,1);xcR(:,:,1)=bR;xcR(:,:,2)=0*bR;xcR(:,:,3)=0*bR;
bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*bG;
bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
%imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
%=============================
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
furR(:,:,1)=fur2;
furR(:,:,2)=0*fur2;
furR(:,:,3)=0*fur2;
alp=(n1*n2)^(-para_osla);fuRI=uint8(255*tanh(alp*abs(furR).^2));
cor2='_spectrum';
imwrite(fuRI,[filename cor2 'R'suff]);
clearall;
M=1024; N=1024;
58
n_m=64;n_n=32;k_m=256;k_n=128;
n_m2=64;n_n2=16;k_m2=352;k_n2=448;
n_m3=64;n_n3=64;k_m3=192;k_n3=288;
%color 3 rectangular
creation
%FFon BEGIN
imR=uint8(zeros(M,N));
imG=uint8(zeros(M,N));
imB=uint8(zeros(M,N));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
%FFon END
%First rectangular BEGIN
sqR1=uint8(zeros(n_m1,n_n1));
sqG1=uint8(zeros(n_m1,n_n1));
sqB1=uint8(zeros(n_m1,n_n1));
for m=1:n_m1,
for n=1:n_n1,
sqR1(m,n)=uint8(255);
sqG1(m,n)=uint8(0);
sqB1(m,n)=uint8(0);
end;
end;
sqCO1(:,:,1)=sqR1;
sqCO1(:,:,2)=sqG1;
sqCO1(:,:,3)=sqB1;
imAGE=imFON;
for m=k_m1:n_m1+k_m1-1,
for n=k_n1:n_n1+k_n1-1,
imAGE(m,n,:)=sqCO1(m-k_m1+1,n-k_n1+1,:);
end;
end;
%First rectangular END
%Second rectangular BEGIN
sqR2=uint8(zeros(n_m2,n_n2));
sqG2=uint8(zeros(n_m2,n_n2));
sqB2=uint8(zeros(n_m2,n_n2));
for m=1:n_m2,
for n=1:n_n2,
sqR2(m,n)=uint8(255);
sqG2(m,n)=uint8(0);
sqB2(m,n)=uint8(0);
end;
end;
sqCO2(:,:,1)=sqR2;
sqCO2(:,:,2)=sqG2;
sqCO2(:,:,3)=sqB2;
for m=k_m2:n_m2+k_m2-1,
for n=k_n2:n_n2+k_n2-1,
imAGE(m,n,:)=sqCO2(m-k_m2+1,n-k_n2+1,:);
end;
end;
59
%Second rectangular END
%Third rectangular BEGIN
sqR3=uint8(zeros(n_m3,n_n3));
sqG3=uint8(zeros(n_m3,n_n3));
sqB3=uint8(zeros(n_m3,n_n3));
for m=1:n_m3,
for n=1:n_n3,
sqR3(m,n)=uint8(255);
sqG3(m,n)=uint8(0);
sqB3(m,n)=uint8(0);
end;
end;
sqCO3(:,:,1)=sqR3;
sqCO3(:,:,2)=sqG3;
sqCO3(:,:,3)=sqB3;
for m=k_m3:n_m3+k_m3-1,
for n=k_n3:n_n3+k_n3-1,
imAGE(m,n,:)=sqCO3(m-k_m3+1,n-k_n3+1,:);
end;
end;
%Third rectangular END
imwrite(imAGE,'Трикрасныхпрямоугольниканафоне.bmp','bmp');
Рисунок 7 - цифровое изображение трех красных прямоугольников на черном фоне
60
Рисунок 8 - дифракционная картина трех красных прямоугольников на черном фоне
61
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторная работа №2
по дисциплине:
«Оптические устройства в радиотехнике»
по теме:
«Низкочастотная и высокочастотная фильтрация изображений с помощью
фильтров с прямоугольными окнами»
Выполнил:
студент группы
Дата____________________
Подпись_________________
Проверил:
Жарких А.А.
Дата____________________
Подпись_________________
Мурманск
2018
62
Задание 1
Согласно
варианту
(таблица
2.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3.bmp. Текст программы и
изображения представить в пояснительной записке.
Таблица 2.1
№пп
1
m0
512
n0
512
r
128,64,32
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=512;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
63
Рисунок 1 - цифровое изображение красного круга на черном фоне радиусом 128
Рисунок 2 - цифровое изображение красного круга на черном фоне радиусом 64
64
Рисунок 3 - цифровое изображение красного круга на черном фоне радиусом 32
Задание 2
Согласно варианту (таблица 2.2) сформировать изображения транспаранта
для низкочастотного фильтра с прямоугольным окном на основе программы
low_fil_M_K1_K2.m. Имена файлов изображений будут включать параметры
окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Таблица 2.2
№пп
1
K1, K2
16,16
Текст программы low_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=16 ;
K2=16 ;
%color rectangular
creation
imR=uint8(zeros(M,M));
65
K1, K2
16,32
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Low_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Рисунок 4 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 16/16
66
Рисунок 5 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 16/32
Задание 3
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов низкочастотного фильтра (имя вида
Low_fil_1024_16_16.bmp)с помощью
программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Текст программы filter.m.:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Low_fil_1024_16_16'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
67
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 6 - дифракционная картина красного круга радиусом 128 для низкочастотного
фильтра с прямоугольным окном 16/16
68
Рисунок 7 - дифракционная картина красного круга радиусом 64 для низкочастотного
фильтра с прямоугольным окном 16/16
Рисунок 8 - дифракционная картина красного круга радиусом 32 для низкочастотного
фильтра с прямоугольным окном 16/16
69
Рисунок 9 - дифракционная картина красного круга радиусом 128 для низкочастотного
фильтра с прямоугольным окном 16/32
Рисунок 10 - дифракционная картина красного круга радиусом 64 для низкочастотного
фильтра с прямоугольным окном 16/32
70
Рисунок 11 - дифракционная картина красного круга радиусом 32 для низкочастотного
фильтра с прямоугольным окном 16/32
Задание 4
Согласно варианту (таблица 2.2) сформировать изображения транспаранта
для высокочастотного фильтра с прямоугольным окном на основе программы
high_fil_M_K1_K2.m. Имена файлов изображений будут включать параметры
окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Текст программы high_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=16;
K2=16;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
end;
71
end
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['High_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Рисунок 12 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 16/16
72
Рисунок 13 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 16/32
Задание 5
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов высокочастотного фильтра (имя вида
High_fil_1024_16_16.bmp)с помощью программы filter.m. В пояснительной
записке поместить все исходные изображения и, для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Текст программы filter.m.:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='High_fil_1024_16_16'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
73
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 14 - дифракционная картина красного круга радиусом 128 для высокочастотного
фильтра с прямоугольным окном 16/32
74
Рисунок 15 - дифракционная картина красного круга радиусом 64 для высокочастотного
фильтра с прямоугольным окном 16/32
Рисунок 17 - дифракционная картина красного круга радиусом 32 для высокочастотного
фильтра с прямоугольным окном 16/32
75
Рисунок 16 - дифракционная картина красного круга радиусом 128 для высокочастотного
фильтра с прямоугольным окном 16/16
Рисунок 18 - дифракционная картина красного круга радиусом 64 для высокочастотного
фильтра с прямоугольным окном 16/16
76
Рисунок 19 - дифракционная картина красного круга радиусом 32 для высокочастотного
фильтра с прямоугольным окном 16/16
77
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторная работа №3
по дисциплине:
«Оптические устройства в радиотехнике»
по теме:
«Полосовая и режекторная фильтрация изображений с помощью фильтров с
прямоугольными окнами»
Выполнил:
студент группы
Дата____________________
Подпись_________________
Проверил:
Жарких А.А.
Дата____________________
Подпись_________________
Мурманск
2018
78
Задание 1
Согласно
варианту
(таблица
3.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3.bmp. Текст программы и
изображения представить в пояснительной записке.
Таблица 3.1
№пп
1
m0
512
n0
512
r
128,64,32
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=512;n0=512;r=128;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
79
Рисунок 1 - цифровое изображение красного круга на черном фоне радиусом 128
Рисунок 2 - цифровое изображение красного круга на черном фоне радиусом 64
80
Рисунок 3 - цифровое изображение красного круга на черном фоне радиусом 32
Задание 2
Согласно варианту (таблица 3.2) сформировать изображения транспаранта
для полосового фильтра с прямоугольным окном на основе программы
Band_fil_M_K11_K12_K21_K22.m. Имена файлов изображений будут включать
параметры окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Таблица 3.2
№пп
1
K11, K12, K21, K22
40,80,100,120
Текст программы image_color_3_crug_bmp.m:
clear all;
M=1024; N=1024;
K11=20;
K12=80;
K21=200;
K22=360;
n_m=16;n_n=32;k_m=128;k_n=160;
%color rectangular creation
imR=uint8(zeros(M,M));
81
K11, K12, K21, K22
20,80,200,360
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(255);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Band_fil_' int2str(M) '_' int2str(K11) '_'
int2str(K12) '_' int2str(K21) '_' int2str(K22) '.bmp']);
Окно 40/80/100/120
Окно 20/80/200/360
Рисунок 4 - изображения транспаранта для полосового фильтра с прямоугольным окном
40/80/100/120
82
Рисунок 5 - изображения транспаранта для полосового фильтра с прямоугольным окном
20/80/200/360
Задание 3
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов полосового фильтра (имя вида
Band_fil_1024_20_50_30_40.bmp)
с
помощью
программы
filter.m.
В
пояснительной записке поместить все исходные изображения и, для каждого из
них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Band_fil_1024_40_80_100_120';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
83
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 6 - дифракционная картина красного круга радиусом 128 для полосового фильтра с
прямоугольным окном 20/80/200/360
84
Рисунок 7 - дифракционная картина красного круга радиусом 64 для полосового фильтра с
прямоугольным окном 20/80/200/360
Рисунок 8 - дифракционная картина красного круга радиусом 32 для полосового фильтра с
прямоугольным окном 20/80/200/360
85
Рисунок 9 - дифракционная картина красного круга радиусом 128 для полосового фильтра с
прямоугольным окном 40/80/100/120
Рисунок 10 - дифракционная картина красного круга радиусом 64 для полосового фильтра с
прямоугольным окном 40/80/100/120
86
Рисунок 11 - дифракционная картина красного круга радиусом 32 для полосового фильтра с
прямоугольным окном 40/80/100/120
Задание 4
Согласно варианту (таблица 3.2) сформировать изображения транспаранта
для режекторного фильтра с прямоугольным окном на основе программы
Имена
Reject_fil_M_K11_K12_K21_K22.m.
файлов
изображений
будут
включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Текст программы Reject_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=40;
K12=80;
K21=100;
K22=120;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
87
end;
end
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(0);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Reject_fil_' int2str(M) ' _' int2str(K11)
'_' int2str(K12) ' _' int2str(K21) '_' int2str(K22)
'.bmp']);
Рисунок 12 - изображения транспаранта для режекторного фильтра с прямоугольным окном
40/80/100/120
88
Рисунок 13 - изображения транспаранта для режекторного фильтра с прямоугольным окном
20/80/200/360
Задание 5
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов режекторного фильтра (имя вида
Reject_fil_1024 _16_26 _36_50.bmp) с помощью программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого из
них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Reject_fil_1024_40_80_100_120';
suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
89
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 14 - дифракционная картина красного круга радиусом 128 для полосового фильтра с
прямоугольным окном 40/80/100/120
90
Рисунок 15 - дифракционная картина красного круга радиусом 64 для полосового фильтра с
прямоугольным окном 40/80/100/120
Рисунок 16 - дифракционная картина красного круга радиусом 32 для полосового фильтра с
прямоугольным окном 40/80/100/120
91
Рисунок 17 - дифракционная картина красного круга радиусом 128 для полосового фильтра с
прямоугольным окном 20/80/200/360
Рисунок 17 - дифракционная картина красного круга радиусом 64 для полосового фильтра с
прямоугольным окном 20/80/200/360
92
Рисунок 18 - дифракционная картина красного круга радиусом 32 для полосового фильтра с
прямоугольным окном 20/80/200/360
93
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторная работа №4
по дисциплине:
«Оптические устройства в радиотехнике»
по теме:
«Фильтрация изображений с помощью фильтров с прямоугольными окнами»
Выполнил:
студент группы
Дата____________________
Подпись_________________
Проверил:
Жарких А.А.
Дата____________________
Подпись_________________
Мурманск
2018
94
Задание 1
Согласно
варианту
(таблица
4.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3. Текст программы и
изображения представить в пояснительной записке.
Таблица 4.1
№пп
3
m0
768
n0
768
r
80,40,20
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=768;n0=768;r=80;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
95
Рисунок 1 - цифровое изображение красного круга на черном фоне радиусом 80
Рисунок 2 - цифровое изображение красного круга на черном фоне радиусом 40
96
Рисунок 3 - цифровое изображение красного круга на черном фоне радиусом 20
Задание 2
Согласно варианту (таблица 4.2, таблица 4.3) сформировать изображения
транспаранта для низкочастотного фильтра с прямоугольным окном на основе
программы low_fil_M_K1_K2.m. Имена файлов изображений будут включать
параметры окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Таблица 4.2
№пп
3
K1, K2
32, 1022
K1, K2
96,1022
Таблица 4.3
№пп
3
K1, K2
1022,48
Текст программы low_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=1022;
K2=48 ;
%color rectangular
creation
97
K1, K2
1022 ,24
imR=uint8(zeros(M,M));
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Low_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Рисунок 4 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 32/1022
98
Рисунок 5 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 96/1022
Рисунок 6 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 1022\48
99
Рисунок 7 - изображения транспаранта для низкочастотного фильтра с прямоугольным
окном 1022\24
Задание 3
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов низкочастотного фильтра (имя вида
Low_fil_1024_1022_48.bmp)с помощью программы filter.m. В пояснительной
записке поместить все исходные изображения
и,
для каждого из них, 2
изображения результатов фильтрации с указанием параметров круга и фильтра.
Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR';
suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Low_fil_1024_1022_48'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
100
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 8 - дифракционная картина красного круга радиусом 80 для низкочастотного
фильтра с прямоугольным окном 32/1022
101
Рисунок 9 - дифракционная картина красного круга радиусом 40 для низкочастотного
фильтра с прямоугольным окном 32/1022
Рисунок 10 - дифракционная картина красного круга радиусом 20 для низкочастотного
фильтра с прямоугольным окном 32/1022
102
Рисунок 11 - дифракционная картина красного круга радиусом 80 для низкочастотного
фильтра с прямоугольным окном 1022/48
Рисунок 12 - дифракционная картина красного круга радиусом 40 для низкочастотного
фильтра с прямоугольным окном 1022/48
103
Рисунок 13 - дифракционная картина красного круга радиусом 20 для низкочастотного
фильтра с прямоугольным окном 1022/48
Задание 4
Согласно варианту (таблица 4.2, таблица 4.3) сформировать изображения
транспаранта для высокочастотного фильтра с прямоугольным окном на основе
программы high_fil_M_K1_K2.m. Имена файлов изображений будут включать
параметры окна. Текст программы и изображение окна фильтра представить в
пояснительной записке.
Текст программы high_fil_M_K1_K2.m:
clear all;
M=1024; N=1024;
K1=1022;
K2=48;
%color rectangular
creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
104
end;
end
for m = (M/2-K1/2):(M/2+K1/2)
for n=(M/2-K2/2):(M/2+K2/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['High_fil_' int2str(M) '_' int2str(K1) '_'
int2str(K2) '.bmp']);
Рисунок 14 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 32/1022
105
Рисунок 15 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 96/1022
Рисунок 16 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 1022\48
106
Рисунок 17 - изображения транспаранта для высокочастотного фильтра с прямоугольным
окном 1022\24
Задание 5
Для
каждого
из
3-х
изображений
круга
(Красный
круг
на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов высокочастотного фильтра (имя вида
High
_fil_1024_1022_48.bmp)
с
помощью
программы
filter.m.
В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR'; suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='High_fil_1024_1022_48'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
107
fuR=fft2(double(bR));
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 18 - дифракционная картина красного круга радиусом 80 для высокочастотного
фильтра с прямоугольным окном 32/1022
108
Рисунок 19 - дифракционная картина красного круга радиусом 40 для высокочастотного
фильтра с прямоугольным окном 32/1022
Рисунок 20 - дифракционная картина красного круга радиусом 20 для высокочастотного
фильтра с прямоугольным окном 32/1022
109
Рисунок 21 - дифракционная картина красного круга радиусом 80 для высокочастотного
фильтра с прямоугольным окном 1022/48
Рисунок 22 - дифракционная картина красного круга радиусом 40 для высокочастотного
фильтра с прямоугольным окном 1022/48
110
Рисунок 23 - дифракционная картина красного круга радиусом 20 для высокочастотного
фильтра с прямоугольным окном 1022/48
111
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра РЭС и ТРО
Лабораторная работа №5
по дисциплине:
«Оптические устройства в радиотехнике»
по теме:
«Фильтрация изображений с помощью фильтров с прямоугольными окнами»
Выполнил:
студент группы
Дата____________________
Подпись_________________
Проверил:
Жарких А.А.
Дата____________________
Подпись_________________
Мурманск
2018
112
Задание 1
Согласно
варианту
(таблица
5.1)
координат
центра
и
радиуса
сформировать файлы цифровых изображений красного круга на черном фоне с
помощью программы image_color_3_crug_bmp.m. Сохранить изображения в
файлах:
Красный
круг
на
фоне_colorR1.bmp,
Красный
круг
на
фоне_colorR2.bmp, Красный круг на фоне_colorR3. Текст программы и
изображения представить в пояснительной записке.
Таблица 5.1
№пп
3
m0
768
n0
768
r
80,40,20
Текст программы image_color_3_crug_bmp.m:
clear all;
%color image input
filename='Красный круг на
фоне';suff='.bmp';suffix='bmp';% sukf='.jpg';
m=1024;n=1024;m0=768;n0=768;r=80;r2=r^2;
xc=uint8(zeros(m,n,3));
xcR=xc;
for km=1:m,
for kn=1:n,
if(((km-m0)^2+(knn0)^2)<=r2)xcR(km,kn,1)=uint8(255);end;
end;
end;
%bG=xc(:,:,2);xcG(:,:,2)=bG;xcG(:,:,1)=0*bG;xcG(:,:,3)=0*
bG;
%bB=xc(:,:,3);xcB(:,:,3)=bB;xcB(:,:,2)=0*bB;xcB(:,:,1)=0*
bB;
cor='_color';
%imwrite(bR,[filename cor 'Rb' suff]);
imwrite(xcR,[filename cor 'R' suff]);
%imwrite(bG,[filename cor 'Gb' suff]);
%imwrite(xcG,[filename cor 'G' suff]);
%imwrite(bB,[filename cor 'Bb' suff]);
%imwrite(xcB,[filename cor 'B' suff]);
113
Рисунок 1 - цифровое изображение красного круга на черном фоне радиусом 80
Рисунок 2 - цифровое изображение красного круга на черном фоне радиусом 40
114
Рисунок 3 - цифровое изображение красного круга на черном фоне радиусом 20
Задание 2
Согласно варианту (таблица 5.2, таблица 5.3) сформировать изображения
транспаранта для полосового фильтра с прямоугольным окном на основе
программы
Band_fil_M_K11_K12_K21_K22.m. Имена файлов изображений
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Таблица 5.2
№пп
3
K11, K12, K21, K22
40,120,1022,1022
K11, K12, K21, K22
80,160,1022,1022
Таблица 5.3
№пп
3
K11, K12, K21, K22
1022,1022, 40,180
K11, K12, K21, K22
1022,1022,200,360
Текст программы Band_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=1022;
115
K12=1022;
K21=40;
K22=180;
n_m=16;n_n=32;k_m=128;k_n=160;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(255);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(0);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Band_fil_' int2str(M) '_' int2str(K11) '_'
int2str(K12) '_' int2str(K21) '_' int2str(K22) '.bmp']);
Рисунок 4 - изображения транспаранта для полосового фильтра с прямоугольным окном
40/120/1022/1022
116
Рисунок 5 - изображения транспаранта для полосового фильтра с прямоугольным окном
1022/1022/40/180
Задание 3
Для каждого из 3-х изображений круга
(Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов полосового фильтра (имя вида
Band_fil_1024_1022_1022_40_180.bmp) с помощью
программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR'; suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Band_fil_1024_1022_48'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
n1=length(bR(:,1));
117
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 6 - дифракционная картина красного круга радиусом 80 для полосового фильтра с
прямоугольным окном 40\120\1022\1022
118
Рисунок 7 - дифракционная картина красного круга радиусом 40 для полосового фильтра с
прямоугольным окном 40\120\1022\1022
Рисунок 8 - дифракционная картина красного круга радиусом 20 для полосового фильтра с
прямоугольным окном 40\120\1022\1022
119
Рисунок 9 - дифракционная картина красного круга радиусом 80 для полосового фильтра с
прямоугольным окном 1022/1022/40/180
Рисунок 10 - дифракционная картина красного круга радиусом 40 для полосового фильтра с
прямоугольным окном 1022/1022/40/180
120
Рисунок 11 - дифракционная картина красного круга радиусом 20 для полосового фильтра с
прямоугольным окном 1022/1022/40/180
Задание 4
Согласно варианту (таблица 5.2, таблица 5.3) сформировать изображения
транспаранта для режекторного фильтра с прямоугольным окном на основе
программы Reject_fil_M_K11_K12_K21_K22.m. Имена файлов изображений
будут включать параметры окна. Текст программы и изображение окна фильтра
представить в пояснительной записке.
Текст программы Reject_fil_M_K11_K12_K21_K22.m:
clear all;
M=1024; N=1024;
K11=1022;
K12=1022;
K21=40;
K22=180;
%color rectangular creation
imR=uint8(zeros(M,M));
for m = 1:M
for n=1:M
imR(m,n)=uint8(255);
121
end;
end
for m = (M/2-K12/2):(M/2+K12/2)
for n=(M/2-K22/2):(M/2+K22/2)
imR(m,n)=uint8(0);
end;
end;
for m = (M/2-K11/2):(M/2+K11/2)
for n=(M/2-K21/2):(M/2+K21/2)
imR(m,n)=uint8(255);
end;
end;
imG=uint8(zeros(M,M));
imB=uint8(zeros(M,M));
imFON(:,:,1)=imR;
imFON(:,:,2)=imG;
imFON(:,:,3)=imB;
imAGE=imFON;
imwrite(imAGE,['Reject_fil_' int2str(M) ' _'
int2str(K11) '_' int2str(K12) ' _' int2str(K21) '_'
int2str(K22) '.bmp']);
Рисунок 12 - изображения транспаранта для режекторного фильтра с прямоугольным окном
40/120/1022/1022
122
Рисунок 13 - изображения транспаранта для режекторного фильтра с прямоугольным окном
1022/1022/40/180
Задание 5
Для каждого из 3-х изображений круга
(Красный круг на
фоне_colorR1.bmp, Красный круг на фоне_colorR2.bmp, Красный круг на
фоне_colorR3.bmp) и двух вариантов режекторного фильтра (имя вида
Reject_fil_1024 _1022_1022 _40_180.bmp)с помощью программы filter.m. В
пояснительной записке поместить все исходные изображения и, для каждого
из них, 2 изображения результатов фильтрации с указанием параметров круга и
фильтра. Здесь же представить текст программы.
Текст программы filter.m:
clear all;
%color image input
filename='Красный круг на фоне_colorR'; suff='.bmp';suffix='bmp';
xc=imread([filename suff],suffix);
bR=xc(:,:,1);
filename1='Reject_fil_1024_1022_48'; suff1='.bmp';suffix1='bmp';
xc1=imread([filename1 suff1],suffix1);
bR1=xc1(:,:,1);
fuR=fft2(double(bR));
123
n1=length(bR(:,1));
n2=length(bR(2,:));
for k1=1:n1,
fur1(k1,:)=fftshift(fuR(k1,:));
end;
for k2=1:n2,
fur2(:,k2)=fftshift(fur1(:,k2));
end;
bR1d=double(bR1)/255;
furR2=fur2.*bR1d;
for k1=1:n1,
fur11(k1,:)=fftshift(furR2(k1,:));
end;
for k2=1:n2,
fur21(:,k2)=fftshift(fur11(:,k2));
end;
furR=ifft2(fur21);
fuR2(:,:,1)=uint8(furR);
fuR2(:,:,2)=uint8(0*furR);
fuR2(:,:,3)=uint8(0*furR);
imwrite(fuR2,['filtering_image' suff]);
Рисунок 14 - дифракционная картина красного круга радиусом 80 для режекторного фильтра
с прямоугольным окном 40\120\1022\1022
124
Рисунок 15 - дифракционная картина красного круга радиусом 40 для режекторного фильтра
с прямоугольным окном 40\120\1022\1022
Рисунок 16 - дифракционная картина красного круга радиусом 20 для режекторного фильтра
с прямоугольным окном 40\120\1022\1022
125
Рисунок 17 - дифракционная картина красного круга радиусом 80 для режекторного фильтра
с прямоугольным окном 1022/1022/40/180
Рисунок 18 - дифракционная картина красного круга радиусом 40 для режекторного фильтра
с прямоугольным окном 1022/1022/40/180
126
Рисунок 19 - дифракционная картина красного круга радиусом 20 для режекторного фильтра
с прямоугольным окном 1022/1022/40/180
127
Приложение 2:
Пример списка
литературы
Список литературы
1. Детлаф А.А., Яворский Б.М. Курс физики. Учеб. пособие для втузов. 4-е
изд., испр. - М.: Высш. шк. , 2002. - 718 с.
2. Дитчберн Р. Физическая оптика. М.: Наука, 1965
3. Ушаков В.Н. Оптические устройства в радиотехнике: Учебное пособие
для вузов. - М.: Радиотехника, 2005. - 240 с.
4. Бронштейн И.Н., Семендяев К.А. Справочник по математике для
инженеров и учащихся вузов – 13-е изд., исправленное. – М.: Наука, Гл.
ред. физ.-мат. лит., 1986. – 544 с.
5. Яворский Б.М., Детлаф А.А., Лебедев А.К. Справочник по физике для
инженеров и студентов вузов – 8-е изд., перераб. и испр. – М.: ООО
«Издательство Оникс»: 2006. – 1056 с.: ил.
6. Гринев А.Ю. Основы радиооптики. – М.: Сайнс-пресс., 2003. – 81 с
7. Наумов К.П., Ушаков В.Н. Акустооптические сигнальные процессы:
Учебное пособие. — Москва: Сайнс-Пресс, 2002. — 80 с.: ил. —
(Конспекты лекций по радиотехническим дисциплинам. Выпуск 8).
8. Потемкин В.Г. – Введение в Matlab: Учебное пособие. - М.: ДиалогМИФИ, 2000. - 256 с.
9. Мироновский Л.А., Петрова К.Ю. - Введение в MATLAB: Учебное
пособие. - СПб.: ГУАП, 2006. - 164 с.
10. Даджион Д., Мерсеро Р. - Цифровая обработка многомерных сигналов. -
М.: Мир, 1988 - 488 с.
128
Download