数字图像处理:图像变换与图像增强
实验目的:
1、掌握图像的傅立叶变换。
2、掌握图像的空域增强。

实验内容及要求:
(一)图像的傅立叶变换。
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)
实验结果:
>> 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));
实验结果:

3、通过函数fftshift()进行平移
实验代码:
clear all;close all;
N=0:4
X=fftshift(N)
Y=fftshift(fftshift(N))
Z=ifftshift(fftshift(N))
实验结果:
>> 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、图像进行傅立叶变换和平移
实验代码:
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));
实验结果:

5、图像变亮后进行傅立叶变换
实验代码:
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))
实验结果:

6、图像旋转后进行傅立叶变换
实验代码:
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))
实验结果:

7、图像添加高斯噪声后进行傅立叶变换
实验代码:
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))
实验结果:

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))
实验结果:

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))
实验结果:

10、编程实现二维傅立叶变换
实验代码:
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);
实验结果:

(二)、图像的空间域图像增强。
1、直方图均衡化。要求在题后给出实验结果,并简要列出其计算步骤。
实验代码:
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);
实验结果:

