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

imnoise2


imnoise3


Spfilt

Адаптивная медианная фильтрация

Моделирование размытого зашумленного изображения

Deconvwnr

Deconvreg

Deconvlucy

Deconvblind

Vistformfwd

Пространственное преобразование изображений

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
[fname,pname] = uigetfile('*.*','Enter data file');
global A;
A=rgb2gray(imread(fname));
axes(handles.axes1);
set(handles.axes1);
imshow(A,[]);
title('Исходное изображение');
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
global B;
B=imnoise(A, 'gaussian');
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
figure, plot(1:1000, imnoise2('gaussian', 1000, 1, 0, 1), 'G-');
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
C = [0 64; 0 128; 32 32; 64 0; 128 0; -32 32];
[r, R, S] = imnoise3(256, 256, C);
imshow (S, [])
title('Результат преобразования');
figure, imshow (r, [])
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
global A;
global B;
B=imnoise(A, 'gaussian');
B = spfilt(B, 'max', 3, 3);
[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;
B=imnoise(A, 'gaussian');
B = adpmedian(B, 7);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
global A;
global B;
B=imnoise(A, 'gaussian');
PSF = fspecial('motion', 7, 45);
B = imfilter(B, PSF, 'circular');
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
global B;
B=imnoise(A, 'gaussian');
PSF = fspecial('motion', 7, 45);
B = imfilter(B, PSF, 'circular');
B = deconvwnr(B, PSF);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
global A;
global B;
B=imnoise(A, 'gaussian');
PSF = fspecial('motion', 7, 45);
B = imfilter(B, PSF, 'circular');
B = deconvreg(B, PSF, 4);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
f = checkerboard(8);
PSF = fspecial('gaussian', 7, 10);
SD = 0.01;
g = imnoise(imfilter(f, PSF), 'gaussian', 0, SD^2);
DAMPAR = 10*SD;
LIM = ceil(size(PSF, 1))/2;
WEIGHT = zeros(size(g));
WEIGHT(LIM + 1:end - LIM, LIM + 1:end - LIM) = 1;
NUMIT = 5;
fr = deconvlucy(g, PSF, NUMIT, DAMPAR, WEIGHT);
[N1,N2]=size(fr);
axes(handles.axes2)
imshow(fr, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
PSF = fspecial('gaussian', 7, 10);
SD = 0.01;
g = imnoise(imfilter(f, PSF), 'gaussian', 0, SD^2);
DAMPAR = 10*SD;
LIM = ceil(size(PSF, 1))/2;
WEIGHT = zeros(size(g));
WEIGHT(LIM + 1:end - LIM, LIM + 1:end - LIM) = 1;
INITPSF = ones(size(PSF));
[fr, PSFe] = deconvblind(g, INITPSF, 5, DAMPAR, WEIGHT);
B = PSFe;
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
% --- Executes on button press in pushbutton15.
function pushbutton15_Callback(hObject, eventdata, handles)
T1 = [3 0 0; 0 2 0; 0 0 1] ;
tform1 = maketform('affine', T1);
figure, vistformfwd(tform1, [0 100], [0 100]);
% --- Executes on button press in pushbutton16.
function pushbutton16_Callback(hObject, eventdata, handles)
global A;
f = A;
s = 0.8;
theta = pi/6;
T = [s*cos(theta) s*sin(theta) 0
-s*sin(theta) s*cos(theta) 0
0 0 1];
tform = maketform('affine', T);
B = imtransform(f, tform);
[N1,N2]=size(B);
axes(handles.axes2)
imshow(B, []);
title('Результат преобразования');
11