Федеральное государственное автономное образовательное учреждение
высшего образования
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
Институт инженерных технологий и естественных наук
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе №5
Тема работы: Преобразование изображений в области пространственных частот
студента очного отделения
3 курса 07001504 группы
Богомазова Александра Михайловича
Проверил:
Старший преподаватель
Болгова Евгения Витальевна
БЕЛГОРОД 2017
Цель работы
Целью лабораторной работы является получение навыков самостоятельной алгоритмической и программной реализации на компьютерной технике методов преобразования изображений в частотной области в MatLab.
Вариант 1
1 цветовая компонента

Fft2

Спектр исходного изображения

Спектр после центрирования

Центрирования спектра

Обнуление части спектра

Обратное преобразования центрирования

Обратное преобразование обнуления

Lpfilter

Hpfilter

Paddedsize

Btw

Histeq


function pushbutton1_Callback(hObject, eventdata, handles)
[fname,pname] = uigetfile('*.*','Enter data file');
global A;
A=imread(fname);
axes(handles.axes1);
set(handles.axes1);
imshow(A,[]);
title('Исходное изображение');
imSize = size(A);
set(handles.edit1,'string', imSize(1));
set(handles.edit2,'string', imSize(2));
set(handles.edit3,'string', imSize(3));
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
global A;
global B;
B=A(:,:,1);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
global A;
global B;
B=fft2(A);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
global A;
global B;
B = fft2(A);
C = abs(B);
figure, mesh(C(1:size(C,1), 1:size(C, 2)));
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
global A;
global B;
B=fftshift(log(1+abs(fft2(rgb2gray(A)))));
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
global A;
B=fftshift(fft2(rgb2gray(A)));
[x, y]=size(B);
B(x/2-5:x/2+5,y/2-5:y/2+5)=0;
b2=ifftshift(B);
b1=fftshift(log(1+abs(b2)));
axes(handles.axes2)
imshow(abs(b1), []);
title('Результат преобразования');
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
global A;
B=fftshift(fft2(rgb2gray(A)));
[x, y]=size(B);
B(x/2-5:x/2+5,y/2-5:y/2+5)=0;
b2=ifftshift(B);
B=real(ifft2(b2));
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
global A;
global B;
B=fft2(rgb2gray(A));
B=fftshift(B);
B=ifft2(B);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
global A;
global B;
PQ = paddedsize(size(rgb2gray(A)));
[U, V] = dftuv(PQ(1), PQ(2));
D0 = 0.02 *PQ(2);
F = fft2(rgb2gray(A), PQ(1), PQ(2));
B = exp(-(U.^2 + V.^2)/(2*(D0^2)));
g = dftfilt(rgb2gray(A), B);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(g, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
global A;
global B;
PQ= paddedsize (size (A));
F= fft2 (rgb2gray(A), PQ(1),PQ(2));
sig=10;
H=lpfilter('gaussian',PQ(1),PQ(2),sig);
G=H.*F;
B=real(ifft2(G));
axes(handles.axes2)
imshow(B,[]);
title('Результат преобразования');
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
global A;
global B;
PQ=paddedsize(size(rgb2gray(A)));
D0=0.02*PQ(1);
H=hpfilter('gaussian',PQ(1), PQ(2),D0);
B=dftfilt(rgb2gray(A), H);
axes(handles.axes2)
imshow(B,[]);
title('Результат преобразования');
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
global A;
global B;
B = fftshift(log(1+abs(fft2(rgb2gray(A)))));
C = abs(B);
figure, mesh(C(1:size(C,1), 1:size(C, 2)));
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
global B;
PQ=paddedsize(size(rgb2gray(A)));
D0=0.02*PQ(1);
H=hpfilter('btw',PQ(1), PQ(2),D0);
B=dftfilt(rgb2gray(A), H);
axes(handles.axes2)
imshow(B,[]);
title('Результат преобразования');
% --- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
global A;
global B;
PQ=paddedsize(size(rgb2gray(A)));
D0=0.02*PQ(1);
H=hpfilter('btw',PQ(1), PQ(2),D0);
B=dftfilt(rgb2gray(A), H);
B = histeq(B);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
figure, imhist(B);
11