МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра РЭС и ТРО Лабораторный практикум по дисциплине: «Оптические устройства в радиотехнике» Мурманск 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