Matlab是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB 将高性能的数值计算和可视化集成在一起,构成了一个方便的、界面友好的用户环境,并提供了大量的内置函数。从而被广泛地应用于科学计算、控制系统、信息处理、神经网络、图像处理、小波分析等领域的分析、仿真和设计工作,而且利用 MATLAB 产品的开放式结构,可以非常容易地对 MATLAB 的功能进行扩充,从而在不断深化对问题认识的同时,不断完善 MATLAB 产品以提高产品自身的竞争能力。MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。MATLAB图像处理工具箱支持四种图像类型,分别为真彩色图像、索引色图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。
3.4 基于Matlab的图像傅里叶变换实例分析
实例1:图像压缩
对一副灰度图像而言,先对行进行DCT变换,然后对列进行DCT变换,其变换结果的能量将主要集中在左上角的位置,即低频部分。
%DCT
%图像压缩
X=imread('rice.tif');%读取8bit的灰度图像
figure(1);
imshow(X);
%DCT变换
X2=imresize(X,0.0625);%缩小
Y=dct(X2);
%结果输出
figure(2);
mesh(Y);
colormap(jet);
colorbar;
如下图所示,图像的能量主要集中在(0,0)附近,随着频率增加,幅值的绝对值急剧减小。
实例2:图像去噪
%图像抑噪
X=imread('rice.tif');
[m,n]=size(X);%读取图像尺寸
Xnoised=imnoise(X,'speckle',0.01);
figure(1);%输出加噪图像
imshow(Xnoised);
Y=dct2(Xnoised);
I=zeros(m,n);
I(1:m/3,1:n/3)=1;%高频屏蔽
Ydct=Y.*I;
Y=uint8(idct2(Ydct));
figure(2);
imshow(Y);
四、总结