From afe2b67d061ee76c175e737d3be36781bb353e5c Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Tue, 6 Dec 2016 12:41:24 +0100 Subject: [PATCH] [BV] Finished assignment 7 Signed-off-by: Jim Martens --- bv/uebung7.m | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/bv/uebung7.m b/bv/uebung7.m index e84ed50..faf2e69 100644 --- a/bv/uebung7.m +++ b/bv/uebung7.m @@ -1,15 +1,44 @@ +% 1. +% Let's take two sequences f(x) = {0 -> 1, 1 -> 1, 2 -> 100} and +% g(x) = { 0 -> 2, 1 -> 3, 2 -> 0}. The sum of both is +% h(x) = {0 -> 3, 1 -> 4, 2 -> 100}. The mean values are: mean(f) = 34, +% mean(g) = 5/3, mean(h) = 107/3 = 34 + 5/3. The linearity mean(f) + +% mean(g) = mean(f + g) is satisfied. The median values are: median(f) = 1, +% median(g) = 2, median(h) = 4. But median(f) + median(g) != median(f + g). +% Therefore the linearity isn't satisfied which means that median is +% non-linear. + % 2. peppers = rgb2gray(imread('peppers.png')); peppers_1 = imnoise(peppers, 'salt & pepper', 0.02); peppers_2 = imgaussfilt(peppers); peppers_3 = imnoise(peppers, 'salt & pepper', 0.6); +peppers_4 = imnoise(peppers, 'poisson'); +peppers_5 = imgaussfilt(peppers, 3); peppers_fft = fftshift(log(abs(fft2(peppers)))); peppers1_fft = fftshift(log(abs(fft2(peppers_1)))); peppers2_fft = fftshift(log(abs(fft2(peppers_2)))); peppers3_fft = fftshift(log(abs(fft2(peppers_3)))); +peppers4_fft = fftshift(log(abs(fft2(peppers_4)))); +peppers5_fft = fftshift(log(abs(fft2(peppers_5)))); -figure (1), imshow(peppers_fft, []); -figure (2), imshow(peppers1_fft, []); -figure (3), imshow(peppers2_fft, []); -figure (4), imshow(peppers3_fft, []); +%figure (1), imshow(peppers_fft, []); +%figure (2), imshow(peppers1_fft, []); +%figure (3), imshow(peppers2_fft, []); +%figure (4), imshow(peppers3_fft, []); +%figure (5), imshow(peppers4_fft, []); +%figure (6), imshow(peppers5_fft, []); + +%3. +low_pass = fspecial('gaussian', [3 3], 1); +low_pass_fft = fft2(low_pass, size(peppers, 1), size(peppers, 2)); +high_pass = fspecial('laplacian', 0.2); +high_pass_fft = fft2(high_pass, size(peppers, 1), size(peppers, 2)); +peppers_fft2 = fft2(peppers); +peppers_filtered_low_fft = peppers_fft2 .* low_pass_fft; +peppers_filtered_high_fft = peppers_fft2 .* high_pass_fft; +peppers_filtered_low = real(ifft2(peppers_filtered_low_fft)); +peppers_filtered_high = real(ifft2(peppers_filtered_high_fft)); +figure (7), imshow(peppers_filtered_low, []); +figure (8), imshow(peppers_filtered_high, []);