实验一:像素与图像基本指标
一.实验目的:
1.了解图像频域处理的意义和手段;
2.通过实验了解二维频谱的分布特点;
3.熟悉连续、离散傅里叶变换的基本性质;
4.熟练掌握图像傅里叶变换的方法及应用;
二.实验原理:
二维离散傅里叶变换(DFT):
二维离散傅里叶逆变换:
三.实验步骤:
1. 打开计算机,安装和启动 matlab 程序;等待处理的图像文件存放在程序组中默认的
“work”文件夹中;
2. 对三幅不同图像做 FFT 并利用自编的函数显示其频谱;
>> i1=imread ('image1.jpg');
>> i2=imread ('image2.jpg');
>> i3=imread ('image3.jpg');
>> i1=rgb2gray(i1);
>> i2=rgb2gray(i2);
>> i3=rgb2gray(i3);
>> i11=fft2(i1);
>> i12=fftshift(i11);
>> imshow(log(abs(i12)+1),[0,10])
>> i21=fft2(i2);
>> i22=fftshift(i21);
>> imshow(log(abs(i22)+1),[0,10])
>> i31=fft2(i3);
>> i32=fftshift(i31);
>> imshow(log(abs(i32)+1),[0,10])
3. 讨论不同的图像内容与 FFT 频谱之间的对应关系;
FFT 频谱反映了图像灰度值变化的频率。频谱图中间部分为低频部分,越靠外频率越高,
低频部分反映图像的概貌,高频部分反映图像的细节。
4. 编写 matlab 程序文件验证二维傅里叶变换的平移性、周期对称性。
证明:
>> i1=imread ('image1.jpg');
>> i1=rgb2gray(i1);
>> i11=fft2(i1);
>> i12=fftshift(i11);
>> i13=log(abs(i12)+1);
>> figure;subplot(1,3,1);imshow(i1);title('原图');
>> subplot(1,3,2);imshow(i13,[]);title('频谱图');
>> kx=96/2;
>> ky=0;
>> [M,N]=size(i1);
>> MM=linspace(0,10,960);
>> NN=linspace(0,10,960);
>> for i=1:M
for j=1:N
r(i,j)= exp(1i.*2.*pi.*kx.*MM(i)+1i.*2.*pi.*ky.*NN(j));
end
end
>> i1=im2double(i1);
>> i2=i1.*r;
>> f2 = fft2(i2);
>> f2 = fftshift(log(1+abs(f2)));
>> subplot(1,3,3);imshow(f2,[]);title('平移后-频谱图');
四.实验报告内容:
1.叙述实验过程。
2.提交实验的原始图像和结果图像。
3.由实验结果分析说明 FFT 的特点和在图像处理中的作用。
五.思考题:
1. 叙述对数字图像进行 DFT 处理的原理。
经过 DFT 傅里叶变换之后,得到的图像频率成分表示的是相邻像数之间数值(颜色,
亮度等等)的变化,即图像在空间上变化的越快,对应在频域上的数值就越大。
2. 通过对图像进行频域处理可以使图像产生什么样的变化?
经过频域处理之后,可以获得原图像信号的频域分布情况,变换结果的能量分布向低频
成份方向集中,反映图像概貌,图像的边缘、线条等细节在高频成份上得到反映。
3. 如何从空间滤波器获得频域滤波器?
从 Sobel 空间滤波器用 freqz2 获得频率域滤波器。H=freqz2(h,R,C),h 为二维空间滤波器,
H 是相应的频域滤波器。
4. 如何在频域中直接生成频域滤波器?
利用 dftuv 函数提供的距离计算及其类型应用所需要的网格数组。