变换的方法,即直方图的均衡化。这种方法是一种使输出图像直方图近似服从均匀分布的变换算法。Matlab7.0图像处理工具箱中提供了图像直方图均衡化的具体函数histeq(),同时我们可以用函数imhist()函数来计算和显示图像的直方图。
(2).空域滤波增强
空域滤波按照空域滤波器的功能又可分为平滑滤波器和锐化滤波器。平滑滤波器可以用低通滤波实现,目的在于模糊图像或消除噪声;锐化滤波器是用高通滤波来实现,目的在于强调图像被模糊的细节。在Matlab中,各种滤波方法都是在空间域中通过不同的滤波算子实现,可用fspecial()函数来创建预定义的滤波算子,然后可以使用imfilter()或filter2()函数调用创建好的滤波器对图像进行滤波。 2.2.4边缘检测
数字图像的边缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域十分重要的基础,也是图像识别中提取图像特征的一个重要属性。边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。常用的有Sobel算子,Prewitt算子,Roberts算子,Log算子等。Matlab7.0工具箱中提供的edge()函数可以进行边缘检测,在其参数里面,可以根据需要选择合适的算子及其参数。
12
2.3图像处理功能的Matlab实现实例
本文通过运用图像处理工具箱的有关函数对一人脸的彩色图像进行处理。
1)图像类型的转换
因后面的图像增强,边缘检测都是针对灰度图像进行的,而我们的原图是RGB图像,所以首先我们要对原图类型进行转换。实现过程代码如下:
i=imread('f:\\face1.jpg');j=rgb2gray(i); imshow(j);imwrite(j,'f:\\face1.tif') 效果图2.1
图2.1
2)图像增强
(1)灰度图像直方图均衡化
通过比较原图和直方图均衡化后的图像可见,图像变得更清晰,而且均衡化后的直方图比原直方图的形状更理想。该部分的程序代码如
13
下:
i=imread('f:\\face1.tif'); j=histeq(i);imshow(j); figure,subplot(1,2,1),imhist(i); subplot(1,2,2),imhist(j)
执行后的效果图如图2.2和图2.3:
图2.2均衡化后的灰度图
像 图2.3均衡化前后的直方图对比图
14
(2)灰度图像平滑与锐化处理
平滑滤波器的目的在于模糊图像或消除噪声,Matlab7.0图像处理工具箱提供了medfilter2()函数用于实现中值滤波,wiener2()实现对图像噪声的自适应滤波。在本文实例中,为了使滤波效果更明显,我们事先为图像认为增加滤波,然后用自适应滤波方法对图像进行滤波。锐化处理的目的在于强调图像被模糊的细节,在本实例中采用了预定义高斯滤波器的方法对图像进行锐化滤波。功能实现的代码如下:
i=imread('f:\\fae1.tif'); j=imnoise(i,'guassian',0,0.02); subplot(1,2,1),imshow(j);
j1=wiener2(j);subplot(1,2,2),imshow(j1);
h=fspecial('gaussian',2,0.05);j2=imfilter(i,h);figure,subplot(1,2,1),imshow(i)
subplot(1,2,2),imshow(j2)
得到的效果图如图2.4和图2.5:
加入噪声的图像 滤波后的
图像
15