文档介绍:数字图像处理作业
摘要
MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读、写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。
一、MATLAB中图像文件的读/写
imread
imread函数用于读入各种图像文件,其一般的用法为
[X,MAP]=imread( ‘filename’, ‘fmt’)
其中,X为读出的图像数据,MAP为颜色表数据(或称调色板,亦即颜色索引矩阵,对灰度图像和RGB彩色图像,该MAP为空矩阵),fmt为图像的格式(可以缺省),filename为读取的图像文件(可以加上文件的路径)。
例:[X,MAP]=imread(‘’, ‘tif’)
二、MATLAB中图像文件的显示
MATLAB图像处理工具箱提供了imshow函数来显示各种图像,其语法如下:
imshow(I, n)
或imshow(I_BW);imshow(X, MAP);imshow(I_RGB)
其中imshow(I, n)用于显示灰度图像,I是图像数据矩阵,n为灰度级数目(n可缺省,缺省值为256)。其它的分别用于显示二值图像、索引色图像和RGB真彩色图像。另外,对RGB彩色图像,还可以用imshow( RGB(:, :, 1) )、imshow( RGB(:, :, 2) )、imshow( RGB(:, :, 3) )分别显示RGB图像的R、G、B三个分量(注意:这样显示出的图像是以各分量值为对应的灰度值所显示的灰度图像)。
需要显示多幅图像时,可以使用figure语句,它的功能就是打开一个新的图像显示窗口。也可以使用subplot函数将多幅图像显示在同一个图像显示窗口的不同区域位置。
三、对比度调整
如果原图像f(x, y)的灰度范围是[m, M],我们希望对图像的灰度范围进行线性调整,调整后的图像g(x, y)的灰度范围是[n, N],那么下述变换:
就可以实现这一要求。
MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。imadjust函数的语法格式为:
J = imadjust(I,[low_in high_in], [low_out high_out])
J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I经过对比度调整后的新图像J。其中
[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用[ ] 空矩阵表示默认范围,默认值为[0, 1](注意:灰度范围只能在0~1之间)。
四、均值滤波
均值滤波是在空间域对图像进行平滑处理的一种方法,易于实现,效果也挺好。
设噪声η(m,n)是加性噪声,其均值为0,方差(噪声功率)为σ2,而且噪声与图像f(m,n)不相关。其有噪声的图像f’(m, n)为:
()
经均值滤波处理后的图像g(m, n)为:
()
其中s是(m, n)点的领域内的点集。
除了对噪声有上述假定之外,该算法还基于这样一种假设:图像是由许多灰度值相近的小块组成。这个假设大体上反映了许多图像的结构特征。()式表达的算法是由某像素领域内各点灰度值的平均值来代替该像素原来的灰度值。
可用模块反映领域平均算法的特征。对于四点领域和八点领域,可分别由下述摸板表征:
()
()
模版沿水平和垂直两个