數(shù)字圖像處理:圖像變換與圖像增強(qiáng)
實驗?zāi)康模?/strong>
1、掌握圖像的傅立葉變換。
2、掌握圖像的空域增強(qiáng)。

實驗內(nèi)容及要求:
(一)圖像的傅立葉變換。
1、矩陣的二維離散傅立葉變換
實驗代碼:
clear all;close all;
I1=ones(4)
I2=[2 2 2 2;1 1 1 1;3 3 0 0;0 0 0 0]
J1=fft2(I1)
J2=fft2(I2)
實驗結(jié)果:
>> Untitled1
?
I1 =
?
?????1 ????1 ????1 ????1
?????1 ????1 ????1 ????1
?????1 ????1 ????1 ????1
?????1 ????1 ????1 ????1
?
?
I2 =
?
?????2 ????2 ????2 ????2
?????1 ????1 ????1 ????1
?????3 ????3 ????0 ????0
?????0 ????0 ????0 ????0
?
?
J1 =
?
????16 ????0 ????0 ????0
?????0 ????0 ????0 ????0
?????0 ????0 ????0 ????0
?????0 ????0 ????0 ????0
?
?
J2 =
?
??18.0000 + 0.0000i ??3.0000 - 3.0000i ??0.0000 + 0.0000i ??3.0000 + 3.0000i
???2.0000 - 4.0000i ?-3.0000 + 3.0000i ??0.0000 + 0.0000i ?-3.0000 - 3.0000i
??10.0000 + 0.0000i ??3.0000 - 3.0000i ??0.0000 + 0.0000i ??3.0000 + 3.0000i
???2.0000 + 4.0000i ?-3.0000 + 3.0000i ??0.0000 + 0.0000i ?-3.0000 - 3.0000i
2、圖像的二維離散傅立葉變換
實驗代碼:
clear all;close all;
I=imread('cameraman.tif');
J=fft2(I);
K=abs(J/256);
figure;
subplot(121);
imshow(I);
subplot(122);
imshow(uint8(K));
實驗結(jié)果:

3、通過函數(shù)fftshift()進(jìn)行平移
實驗代碼:
clear all;close all;
N=0:4
X=fftshift(N)
Y=fftshift(fftshift(N))
Z=ifftshift(fftshift(N))
實驗結(jié)果:
>> Untitled3
?
N =
?
?????0 ????1 ????2 ????3 ????4
?
?
X =
?
?????3 ????4 ????0 ????1 ????2
?
?
Y =
Z =
?
?????0 ????1 ????2 ????3 ????4
?
?????1 ????2 ????3 ????4 ????0
?
4、圖像進(jìn)行傅立葉變換和平移
實驗代碼:
clear all;close all;
I=imread('peppers.png');
J=rgb2gray(I);
K=fft2(J);
K=fftshift(K);
L=abs(K/256);
figure;
subplot(121);
imshow(J);
subplot(122);
imshow(uint8(L));
實驗結(jié)果:

5、圖像變亮后進(jìn)行傅立葉變換
實驗代碼:
clear all;close all;
I=imread('peppers.png');
J=rgb2gray(I);
J=J*exp(1);
J(find(J>255))=255;
K=fft2(J);
K=fftshift(K);
L=abs(K/256);
figure;
subplot(121);
imshow(J);
subplot(122);
imshow(uint8(L))
實驗結(jié)果:

6、圖像旋轉(zhuǎn)后進(jìn)行傅立葉變換
實驗代碼:
clear all;close all;
I=imread('peppers.png');
J=rgb2gray(I);
J=imrotate(J,45,'bilinear');
K=fft2(J);
K=fftshift(K);
L=abs(K/256);
figure;
subplot(121);
imshow(J);
subplot(122);
imshow(uint8(L))
實驗結(jié)果:

7、圖像添加高斯噪聲后進(jìn)行傅立葉變換
實驗代碼:
clear all;close all;
I=imread('peppers.png');
J=rgb2gray(I);
J=imnoise(J,'gaussian',0,0.01);
K=fft2(J);
K=fftshift(K);
L=abs(K/256);
figure;
subplot(121);
imshow(J);
subplot(122);
imshow(uint8(L))
實驗結(jié)果:

8、灰度圖像的傅立葉變換和反變換
實驗代碼:
clear all;close all;
I=imread('onion.png');
J=rgb2gray(I);
K=fft2(J);
L=fftshift(K);
M=ifft2(K);
%imshow(I);
figure;
subplot(121);
imshow(uint8(abs(L)/198));
subplot(122);
imshow(uint8(M))
實驗結(jié)果:

9、灰度圖像的幅值譜和相位譜
實驗代碼:
clear all;close all;
I=imread('peppers.png');
J=rgb2gray(I);
K=fft2(J);
L=fftshift(K);
fftr=real(L);
ffti=imag(L);
A=sqrt(fftr.^2+ffti.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;
B=angle(K);
figure;
subplot(121);
imshow(A);
subplot(122);
imshow(real(B))
實驗結(jié)果:

10、編程實現(xiàn)二維傅立葉變換
實驗代碼:
clear all;close all;
I=imread('onion.png');
J=rgb2gray(I);
J=double(J);
s=size(J);
M=s(1);N=s(2);
for?u=0;M-1
????for?v=0;N-1
????????k=0;
????????for?x=0;M-1
????????????for?y=0;N-1
????????????????k=J(x+1,y+1)*exp(-j*2*pi*(u*x/M+v*y/N))+k;
????????????end
????????end
????????F(u+1,v+1)=k;
????end
end
K=fft2(J);
figure;
subplot(121);
imshow(K);
實驗結(jié)果:

(二)、圖像的空間域圖像增強(qiáng)。
1、直方圖均衡化。要求在題后給出實驗結(jié)果,并簡要列出其計算步驟。
實驗代碼:
clear all;
close all;
I=imread('tire.tif');
J=histeq(I);
figure;
subplot(121);
imshow(uint8(I));
subplot(122);
imshow(uint8(J));
figure;
subplot(121);
imhist(I,64);
subplot(122);
imhist(J,64);
實驗結(jié)果:

