СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Восстановление изображений

Категория: Информатика

Нажмите, чтобы узнать подробности

Восстановление изображений

Просмотр содержимого документа
«Восстановление изображений»

Федеральное государственное автономное образовательное учреждение

высшего образования


«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)


Институт инженерных технологий и естественных наук


Кафедра прикладной информатики и информационных технологий






Отчет по лабораторной работе №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