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.