%-- 8.12.2010 14:06 --%
clear all;
I = imread('onion.png');
% velikost rozmazání delta
del = 30;
% úhel rozmazání
uhel = 10;
% impulsivní degradaèní odezva (rozmazání obrazu - simualce pohybu kamery)
psfdeg = fspecial('motion',del,uhel);
% aplikace na pùvodní obrázek
Id = imfilter(I, psfdeg, 'circular','conv');
imshow(Id);
% rekontruovaný obraz
Ire1 = deconvwnr(Id, psfdeg, 0);
imshow(Id), figure, imshow(Ire1);
% obrázke bez zbyteèného šumu?
Ire1 = deconvwnr(Id,psfdeg,0.01);
imshow(Id), figure, imshow(Ire1);
Ire1 = deconvwnr(Id,psfdeg,0.05);
imshow(Id), figure, imshow(Ire1);
clear all;
I = im2double(imread('cameraman.tif'));
imshow(I);
% velikost rozmazání delta
del = 21;
% úhel rozmazání
uhel = 10;
% definování rozmazání pøíkazem fspecial
psf = fspecial('motion', del, uhel);
% aplikace na pùvodní obrázek
Id = imfilter(I, psf, 'circular', 'conv');
% zašumìní obrázku (variance of noise, druhá mocnina smìrodatné odchylky šumu)
varn = 0.0001;
% degradace obrazu - rozmazáním a šumem
Idn = imnoise(Id, 'gaussian', 0, varn);
imshow(Idn);
% pomìr signálu k šumu
NSR = 0;
NSR1 = 0;
Ire1 = deconvwnr(Idn, psf, NSR1);
imshow(Ire1);
% cosi
NSR2 = varn/var(I(:))
Ire2 = deconvwnr(Idn, psf, NSR2);
imshow(Ire2);
Ire3 = deconvlucy(Idn, psf, 10);
imshow(Ire3), figure, imshow(Ire2);
clear all;
I = imread('board.tif');
imshow(I);
% oøíznutí a posunutí velkého obrázku
I = I(50+[1:256], 2+[1:256], :);
imshow(I);
% velikost rozmazání delta
del = 10;
% úhel rozmazání
uhel = 20;
% definování rozmazání pøíkazem fspecial
psf = fspecial('motion', del, uhel);
% degradovaný obraz, rozmazaný
Id = imfilter(I, psf, 'symmetric', 'conv');
imshow(Id);
% poissonovo rozostøení/rozmazání/zašumìní?
Idn = imnoise(Id, 'poisson');
imshow(Idn);
Ire1 = deconvwnr(Idn, psf, 0.01);
imshow(Idn), figure, imshow(Ire1);
Ire2 = deconvlucy(Idn, psf, 10);
imshow(Ire2), figure, imshow(Ire1);
clear all;
I = imread('rice.png');
imshow(I);
% zobrazení histogramu
imhist(I);
prah = 145;
Iseg = segprah(256,256,prah, I);
imshow(Iseg,[1 200]);
% rozdìlení obrazu na více èástí
imhist(I([1:192],:));
% lokální práh nastavíme nìkde kolem 140
pl1 =140;
imhist(I([193:256],:));
pl2 = 115;
%
Iseg1 = segprah(192,256,pl1, I);
imshow(Iseg1,[1 200]);
