灰度变换增强处理是在空域内对图像进行增强处理的一种简单、有效的技术方法,灰度变换不改变原图像中像素的位置,只是改变了每一个像素点的灰度值。在进行灰度变换的之前,需要进行图像的直方化,获取图像直方图[18]。在MATLAB中可直接通过调用imhist()函数进行处理。
具体调用格式如下所示:
imhist(I):该函数直接可绘制灰度图像I的直方图。
imhist(I,n):该函数中I为灰度的输入图像,n为指定的灰度级数目,缺省值为256。
imhist(X,map):计算和显示索引色图像的直方图
[counts,binLocations]=imhist(...):通过函数stem(x,counts)可直接绘制直方图。
下面代码演示了MATLAB中对获取图像直方图的基本方法,具体实现如下:
clear all;
clc;
I=imread('gray.png');
Figure,
subplot(121);imshow(I);
subplot(122);imhist(I);
在程序中,通过函数imhist()计算,显示了其运算结果。程序执行后的结果如图8.1所示。在图8.1中,左图为原始的灰度图像,右图为该灰度图的直方图。灰度值的大小范围是在0~255。从直方图中可以看出,该灰度图的灰度点集中在一块区域,即灰度值区域的80~150之间,因此该灰度原图比较模糊,对比度较低。
图8.1 MATLAB程序直方图
倘若将80~150之间的灰度值均匀的分布在0~255灰度之间,图像就会变得更加的清晰可见。在MATLAB中,可直接调用函数adjust()进行灰度均值调整,具体调用格式如下:
J=imadjust(I):对I进行灰度调整。(www.xing528.com)
J=imadjust(I,[low_in;high_in],[low_out;high_out]):该函数中[low_in;high_in]为原图像将要变换的灰度范围,[low_out;high_out]为变换后的灰度范围。
RGB2=imadjust(RGB1,___):对RGB彩色图进行调整。
通过MATLAB自带函数imadjust()调整灰度图像的灰度范围,代码实现如下:
图8.2 通过imadjust()函数调整灰度图及直方图显示
运行代码显示,通过imadjust()函数调整图像的灰度范围,原灰度图灰度值范围为0~255之间,将大于255*0.5的灰度值设为255,将小于255*0.2的灰度值设置为0,运行结果如图8.2所示,左边为原始图,右边为调整灰度值后的图像。
函数imadjust()不仅可以对灰度图进行增强,还可以对彩色图像进行增强处理,主要是对其RGB的值分别进行处理操作。具体MATLAB代码实现如下所示:分别进行处理,如下图8.3所示。
图8.3 通过函数imadjust()调整RGB图
此外,在利用函数adjust()进行灰度图像增强处理时,为了对自己感兴趣的目标区域进行定位增强处理,还可以使用函数stretchlim()首先获取灰度图像的最佳输入区域,具体操作实现如下代码:
此程序中使用函数stretchlim()设置的限制,调整图像的对比度,并显示出结果。该示例使用默认限制区间为[0.01,0.99],饱和度为上1%和下1%来进行灰度图像的增强。输出的图像结果如下图8.4所示。
图8.4 通过函数stretchlim()和函数imadjust()增强处理后的图像:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。