本文最后更新于25 天前,其中的信息可能已经过时,如有错误请发送邮件到1225615596@qq.com
2.8
f = imread('Fig0216(a).tif');
w = ones(31);
gd = imfilter(f, w);
gr = imfilter(f, w, 'replicate');
gs = imfilter(f, w, 'symmetric');
gc = imfilter(f, w, 'circular');
f8 = im2uint8(f);
g8r = imfilter(f8, w, 'replicate');
figure;
subplot(2,3,1); imshow(gd, []);
subplot(2,3,2); imshow(gr, []);
subplot(2,3,3); imshow(gs, []);
subplot(2,3,4); imshow(gc, []);
subplot(2,3,5); imshow(g8r, []);
2.9
f = imread('Fig0216(a).tif');
f = im2double(f);
m = 3; n = 3;
gmean = @(A) prod(A,1).^(1/size(A,1));
f = padarray(f,[m n],'replicate');
g = colfilt(f,[m n],'sliding',gmean);
[M,N] = size(f);
g = g((m+1):(M-m),(n+1):(N-n));
imshow(g,[]);
2.10
f = imread('Fig0217(a).tif');
f = im2double(f);
w = [0 1 0; 1 -4 1; 0 1 0];
g1 = imfilter(f, w, 'replicate');
f2 = im2double(f);
g2 = imfilter(f2, w, 'replicate');
g = f2 - g2;
figure;
subplot(2,2,1), imshow(f, []), title('Original');
subplot(2,2,2), imshow(g1, []), title('g1');
subplot(2,2,3), imshow(g2, []), title('g2');
subplot(2,2,4), imshow(g, []), title('g = f2 - g2');
2.11
f = imread('Fig0217(a).tif');
f = im2double(f);
w4 = fspecial('laplacian', 0);
w8 = [1 1 1; 1 -8 1; 1 1 1];
g4 = f - imfilter(f, w4, 'replicate');
g8 = f - imfilter(f, w8, 'replicate');
figure;
subplot(1,3,1), imshow(f, []), title('Original');
subplot(1,3,2), imshow(g4, []), title('g4');
subplot(1,3,3), imshow(g8, []), title('g8');
2.12
f = imread('Fig0219(a).tif');
f = im2double(f);
fn = imnoise(f, 'salt & pepper', 0.2);
gm = medfilt2(fn);
gms = medfilt2(fn, 'symmetric');
figure;
subplot(1,3,1), imshow(fn, []), title('Noisy Image');
subplot(1,3,2), imshow(gm, []), title('medfilt2');
subplot(1,3,3), imshow(gms, []), title('medfilt2 symmetric');
3.1
f = imread('Fig0305(a).tif');
f = im2double(f);
[M,N] = size(f);
F = fft2(f);
F_shift = fftshift(F);
sig = 10;
[u,v] = meshgrid(-floor(N/2):ceil(N/2)-1, -floor(M/2):ceil(M/2)-1);
D = sqrt(u.^2 + v.^2);
H = exp(-(D.^2)/(2*sig^2));
G = H .* F_shift;
G = ifftshift(G);
g = ifft2(G);
g = real(g);
figure;
subplot(1,2,1), imshow(f, []), title('原图');
subplot(1,2,2), imshow(g, []), title('频域高斯低通滤波');
h = fspecial('gaussian', 15, 7);
gs = imfilter(f, h, 'replicate');
figure;
subplot(1,2,1), imshow(f, []), title('原图');
subplot(1,2,2), imshow(gs, []), title('空间域高斯滤波');
3.2
f = imread('Fig0309(a).tif');
f = im2double(f);
[M, N] = size(f);
P = 2*M;
Q = 2*N;
F = fft2(f);
S = log(1 + abs(fftshift(F)));
h = fspecial('sobel')';
H = freqz2(h, P, Q);
H1 = ifftshift(H);
gs = imfilter(f, h, 'replicate');
F_f = fft2(f, P, Q);
G_f = H1 .* F_f;
gf = real(ifft2(G_f));
gf = gf(1:M, 1:N);
figure
subplot(3,3,1)
imshow(S, [])
title('Original Spectrum')
subplot(3,3,2)
imshow(abs(H), [])
title('Freq Response H')
subplot(3,3,3)
imshow(abs(H1), [])
title('Shifted H1')
subplot(3,3,4)
imshow(gs, [])
title('Spatial Filtered')
subplot(3,3,5)
imshow(gf, [])
title('Frequency Filtered')
subplot(3,3,6)
imshow(abs(gs), [])
title('Magnitude Spatial Filtered')
subplot(3,3,7)
imshow(abs(gf), [])
title('Magnitude Frequency Filtered')
subplot(3,3,8)
imshow(abs(gs) > 0.2*max(abs(gs(:))))
title('Thresholded Spatial')
subplot(3,3,9)
imshow(abs(gf) > 0.2*max(abs(gf(:))))
title('Thresholded Frequency')
3.3
M = 8;
N = 5;
u = 0:(M-1);
v = 0:(N-1);
U = repmat(u.',1,N);
V = repmat(v,M,1);
DSQ = U.^2 + V.^2;
DSQ_shifted = fftshift(DSQ);
D = hypot(U,V);
disp('DSQ ='); disp(DSQ);
disp('DSQ shifted ='); disp(DSQ_shifted);
disp('D ='); disp(D);
3.4
f = im2double(imread('Fig0313(a).tif'));
[M, N] = size(f);
P = 2*M;
Q = 2*N;
F = fft2(f, P, Q);
[U, V] = meshgrid(-floor(Q/2):ceil(Q/2)-1, -floor(P/2):ceil(P/2)-1);
D = sqrt(U.^2 + V.^2);
D0 = 0.05 * Q;
H = exp(-(D.^2) / (2*(D0^2)));
G = H .* fftshift(F);
g = real(ifft2(ifftshift(G)));
g = g(1:M, 1:N);
figure
subplot(1,3,1)
imshow(fftshift(H), [])
title('Gaussian Low Pass Filter')
subplot(1,3,2)
imshow(log(1 + abs(F)), [])
title('Spectrum of Image')
subplot(1,3,3)
imshow(g, [])
title('Filtered Image')





