%-- 1.12.2010 14:04 --%
clear all;
H=zeros(21,21);
% støední oblast, která bude propouštìt
H(8:14,8:14) = 1;
% zobrazení 3D obrazu filtru (mesh)
% vypoèítání møížky frekvencí
[f1,f2] = freqspace(21,'mashgrid');
mesh(f1,f2,H);
h=fsamp2(H);
% pøevádí nový filtr do pùvodní oblastia také ho zobrazí
freqz2(h,[32 32]);
% zobrazení, jak nám filtr vyhladil obraz
I = imread('Cmy343.bmp');
% zašumìní obrázku
% zobrazení zašumìného obrázku
Ing = imnoise(I, 'gaussian',0,0.02);
imshow(Ing);
% filtrace prostorové oblasti (konvoluce oblasti obrázku s filtrem H)
If1 = imfilter(Ing,h);
imshow(Ing), figure, imshow(If1);
h=fwind1(H,boxcar(11));
% zobrazení, jak se zmìní náš pùvodní filtr
freqz2(h,[32 32]);
% vyfiltrování novým filtrem 11×11
If2 = imfilter(Ing, h);
imshow(If1), figure, imshow(If2);
% nový filtr (bartlett)
hw = fwind1(H, bartlett(13));
freqz2(hw,[32 32]);
% filtrace obrázku tímto filtrem
If3 = imfilter(Ing, hw);
imshow(If1), figure, imshow(If2), figure, imshow(If3);
% filter horní propust a srovnáme s laplaceovým filtrem (nìco s procházením 0)
H = ones (7,7);
H(3:5,3:5) = 0;
[f1,f2] = freqspace(7,'meshgrid');
% zobrazení v 3D pohledu
mesh(f1,f2,H);
% naètení obrázku s mincemi
I1 = imread('coins.png');
imshow(I1);
h = fsamp2(H);
freqz2(h,[32 32]);
If4 = imfilter(I1, h);
imshow(I1), figure, imshow(If4, [0 10]);
% hledání hran, nebo co, matice Laplacian
h2 = [0,1,0;1,-4,1;0,1,0];
If5 = imfilter(I1, h2);
imshow(If4, [0 5]), figure, imshow(If5, [0 10]);
H = zeros(19,19);
[f1,f2] = freqspace(19,'meshgrid');
% omezení møížky na kruh
d = sqrt(f1.^2+f2.^2) < 0.5;
H(d) = 1;
mesh(f1, f2, H);
I = imread('Cmy343.bmp');
Inp = imnoise(I, 'poisson');
Inp = imnoise(I, 'gaussian',0,0.02);
imshow(Inp);
% pøevedené do prostorové oblasti + je souèasnì oøezán na velikost 19×19
h = fsamp2(H);
freqz2(h,[32 32]);
% filtrace
If1 = imfilter(Inp, h, 'circular');
imshow(If1);
hw = fwind1(H, hamming(13));
freqz2(hw,[32 32]);
If2 = imfilter(Inp, hw, 'circular');
imshow(If1), figure, imshow(If2);
clear all;
I = imread('onion.png');
imshow(I);
% velikost rozmazání delta
del = 30;
% úhel rozmazání
uhel = 10;
% impulsní odezva
psf = fspecial('motion',del, uhel);
% degradace filtru
Id = imfilter(I, psf, 'circular', 'conv');
imshow(Id);
% vrácení pùvodního obrazu, rekontrukce
Ire1 = deconvlucy(Id, psf, 20);
imshow(Ire1);
Ire2 = deconvreg(Id, psf);
imshow(Ire1), figure, imshow(Ire2);
