Digitális képfeldolgozás gyakorlat
Konvolúviós tétel bizonyítása
A képtérben végzett konvolúció ekvivalens a frekvencia-térben történő szorzással.
%%%% szűrés képtérben %%%%%%%
>> img = imread('Columbo.JPG');
>> avg_filt = fspecial('average', 11);
>> img_avg = imfilter(img, avg_filt);
%%% szűrés frekvencia-térben %%%%%
>> [h, w] = size(img);
>> avg_pad = zeros(h, w);
>> avg_pad(1:11,1:11) = avg_filt; %% kiterjesztjük a maszk méretét, mert mindkét képnek egyforma nagynak kell lennie
>> fft_avg = fft2(avg_pad);
>> fft_avg2 = fftshift(fft_avg);
>> img_fft = fft2(img);
>> img_fft2 = fftshift(img_fft);
>> img_fft_filt = img_fft2 .* fft_avg2;
>> img_ifft_filt = ifft2(img_fft_filt);
>> imshow(img_ifft_filt,[0 255]);
>> max(max( img_avg - uint8(real(img_ifft_filt))
![]() |
![]() |
|
Eredeti kép | Átlagoló szűrés képtérben | Átlagoló szűrés frekvenciatérben |