Na ostatnich zajęciach nie zdążyłam właściwie ze studentami prz

Transkrypt

Na ostatnich zajęciach nie zdążyłam właściwie ze studentami prz
Komputerowe przetwarzanie obrazu
Laboratorium 7
Przykład 1
Proszę porównać wynik z ćwiczeniem dotyczącym pikseli brzegowych
(z poprzednich zajęć) zwracając uwagę na krawędź obrazu.
L=imread('portret.jpg');
imshow (L), title('obraz zrodlowy');
h=ones(5)/25 %maska filtru, zamiast sprowadzenia do skali szarości, wykonano
dzielenie przez sumę współczynników
L1=imfilter(L,h); %filtrowanie obrazu
figure;
imshow(L1), title ('obraz bez powielania pikseli brzegowych');
L2=imfilter(L, h, 'replicate');
figure;
imshow (L2), title ('obraz z powielonymi pikselami brzegowymi');
Przykład 2
Filtry specjalne w Matlabie.
Filtr wyostrzający:
L = imread('portret.jpg');
h = fspecial('unsharp');
%h = fspecial('motion',50,45);
L1 = imfilter(L,h);
imshow(L);
figure, imshow(L1);
pause
close all
'average'
'disk'
'gaussian'
'laplacian'
'log'
'motion'
'prewitt'
'sobel'
'unsharp'
averaging filter
circular averaging filter
Gaussian lowpass filter
filter approximating the 2-D Laplacian operator
Laplacian of Gaussian filter
motion filter
Prewitt horizontal edge-emphasizing filter
Sobel horizontal edge-emphasizing filter
unsharp contrast enhancement filter
Zadanie 1
W Matlabie istnieje szereg innych predefiniowanych filtrów. Proszę wypróbować
filtrowanie za pomocą funkcji fspecial: 'average', 'gaussian', 'laplacian',
'log', 'motion', 'previt', 'sobel'. Mam nadzieję, że ich działanie jest
oczywiste.
Przykład 3
Filtrowanie filtrem medianowym:
L=imread('portret.jpg');
figure(1);
imshow(L);
Maska=[5,5];
L1=medfilt2(L, Maska);
L1=mat2gray(double(L1));
figure(2); imshow(L1);
Zadanie 2
Proszę przeprowadzić proces filtrowania obrazu filtrem dolnoprzepustowym
uśredniającym o rozmiarze maski [5,5] i porównać otrzymany obraz z obrazem
powstałym w wyniku filtrowania medianowego.
Zadanie 3
Przeprowadzić filtrowanie obrazu „kwadrat.bmp” za pomocą filtru medianowego
z maską o rozmiarze 3, 5, 15 oraz 45. Co się dzieje z narożnikami kwadratu?
Przykład 4
Filtrowanie filtrem minimalnym (obraz sztuczny)
L=ones([16, 16])*256;
L(6:11, 6:11)=(0:43:256)'*ones([1 6]);
L(14,14)=0;
L=uint8(L);
figure(1);
imshow(L, 'notruesize');
L1=imnoise(L, 'salt & pepper', 0.3);
figure(2);
imshow(L1,'notruesize');
Maska=[3,3]
L2=nlfilter(L1, Maska, 'min(x(:))');
L2=mat2gray(double(L2));
figure(3); imshow(L2,'notruesize');
Maska=[10,10];
L3=nlfilter(L1, Maska, 'min(x(:))');
L3=mat2gray(double(L3));
figure(4); imshow(L3, 'notruesize');
Zadanie 4
Na tej samej zasadzie proszę przefiltrować obraz filtrem maksymalnym
‘max(x(:))’. Okno filtru niech ma rozmiar 3x3 oraz 5x5.
Przykład 5
Filtrowanie filtrem minimalnym (obraz rzeczywisty)
L=imread('Krakow_3.jpg','jpg');
L=rgb2gray(L);
L=uint8(L);
L=histeq(L);
figure(1);
imshow(L);
L1=imnoise(L, 'salt & pepper', 0.3); % ostatni parametr określa stopień
zakłócenia
figure(2);
imshow(L1);
Maska=[3,3]
L2=nlfilter(L1, Maska, 'max(x(:))');
L2=mat2gray(double(L2));
figure(3); imshow(L2);
Maska=[2,2];
L3=nlfilter(L1, Maska, 'max(x(:))');
L3=mat2gray(double(L3));
figure(4); imshow(L3);
Zadanie 5
Proszę przeprowadzić proces filtrowania obrazu rzeczywistego za pomocą filtru
minimalnego (posługując się programem z przykładu 5)
Zadanie 6
Przeprowadzić binaryzację obrazu „bacteria.bmp” z progiem 128, następnie
zastosować filtr maksymalny i minimalny. Różnica otrzymanych obrazów posłuży
do wykrywania krawędzi.
L=imread ('bacteria.bmp');
figure;
imshow(L);
L1=L>128;
figure;
imshow(L1);
L2=nlfilter(L1, [3 3], 'min(x(:))');
figure;
imshow(L2);
L3=nlfilter(L1, [3 3], 'max(x(:))');
figure; imshow(L2);
L4=L3-L2;
figure;
imshow(L4);
Przykład 6
Filtracja obrazu za pomocą dwuwymiarowego filtru adaptacyjnego Wiennera:
L=imread('Krakow_3.jpg','jpg');
L=rgb2gray(L);
L=uint8(L);
L=histeq(L);
figure(1);
imshow(L);
L1=imnoise(L, 'salt & pepper', 0.1);
figure(2);
imshow(L1);
L2=wiener2(L1, [5 5]);
figure(3);
imshow(L2);
WIENER2 Perform 2-D adaptive noise-removal filtering.
WIENER2 lowpass filters an intensity image that has been
degraded by constant power additive noise. WIENER2 uses a
pixel-wise adaptive Wiener method based on statistics
estimated from a local neighborhood of each pixel.
J = WIENER2(I,[M N],NOISE) filters the image I using
pixel-wise adaptive Wiener filtering, using neighborhoods of
size M-by-N to estimate the local image mean and standard
deviation. If you omit the [M N] argument, M and N default to
3. The additive noise (Gaussian white noise) power is assumed
to be NOISE.
Zadanie 7
Dla tego samego obrazu proszę zastosować filtr dolnoprzepustowy uśredniający
o takim samym rozmiarze maski i porównać otrzymane obrazy.

Podobne dokumenty