资源描述:
《MATLAB图形图像处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章MATLAB图形图像处理3.5图像的灰度变换与直方图在计算机中一幅二维数字图像表示为一个矩阵,该矩阵中的元素是位于相应坐标位置的图像灰度值。对图像处理包括对彩色图像的处理,往往都是对像素灰度的操作,所以对图像进行灰度变换是图像处理过程中最简单、最基础内容。在图像处理中,直接对像素进行的操作称为空间域(或简称空域)处理。3.5.1图像的灰度变换在MATLAB中,用函数imadjust可完成灰度图像的灰度变换。其基本语法格式为:g=imadjust(p,[low_inhigh_in],[low_outhigh_out],gamma
2、)其中p为读入到MATLAB中的待变换图像矩阵;[low_inhigh_in]指定了p图像中被执行变换操作的灰度范围,[low_outhigh_out]是p图像中的像素变换后被映射到low_out~high_out的灰度级上。默认状态下,[low_outhigh_out]及[low_inhigh_in]为空,此时等价于[01],表明输入与输出灰度级为0~255(uint8)或0~65535(uint16)。参数gamma是指变换映射的方式,默认方式时gamma取作1,完成线性映射,这时变换前后的灰度级没有被加权;当gamma小于1,
3、则映射被加权至更高的灰度级;相反当gamma大于1,输出则被加权映射至较低的灰度级。几种灰度变换过程:【例3.5.1】将football.jpg灰度级0.1~0.6范围的像素线性变换到0~1上,效果如图3.29中图(b)所示:p=imread('football.jpg');g1=imadjust(p,[0.10.6],[]);subplot(1,2,1);imshow(p);xlabel('(a)');subplot(1,2,2);imshow(g1);xlabel('(b)');【例3.5.2】将图像p向高灰度级变换,gamma
4、取0.6,效果如图3.29中图(c)所示。g2=imadjust(p,[],[],0.6);subplot(2,2,3);imshow(g2);xlabel('(c)');【例3.5.3】将图像p做灰度倒相变换,即输出源图的负片,gamma取1,效果如图3.29中图(d)所示。g3=imadjust(p,[01],[10]);subplot(2,2,4);imshow(g3);xlabel('(d)');3.5.2灰度直方图图像灰度直方图描述了一幅图像的灰度级内容,即各个灰度级像素数目的统计。在MATLAB图像处理中,通过命令imh
5、ist来给出图像的直方图。其基本语法格式为:h=imhist(p,b)其中p为读入到MATLAB环境中的图像矩阵,参数b指明直方图统计时显示的整个灰度级分段数目,若图像为uint8数据格式,当b=2时,灰度分为0~127及128~256两个区段。省略b时,表明灰度级不分段,这也是imhist的默认调用方式。【例3.5.4】显示图像p的灰度直方图时,先要把RGB彩色图像p变换为灰度图像I。运行下列程序,得到如图3.30所示直方图。p=imread('football.jpg');I=rgb2gray(p);imhist(I);3.5.
6、3直方图均衡化通过直方图均衡化做适当的调整,即把一幅已知灰度概率分布图像中的像素灰度做某种映射变换,使它变成一幅具有均匀概率分布的新图像,使图像视觉效果更加清晰。直方图均衡的MATLAB函数为histeq,其基本语法格式为:g=histeq(p,outlev)其中p为读入的图像矩阵,outlev为输出图像的灰度级数。outlev的默认值为64,即64个灰度级,这样对图像的细节有一定改变。通常将其赋值为256,即全灰度级(uint8)。【例3.5.4】对tire.tif进行直方图均衡,其效果如图所示:p=imread('tire.ti
7、f');subplot(2,2,1);imshow(p);xlabel('(a)');subplot(2,2,2);imhist(p);xlabel('(b)');g=histeq(p);subplot(2,2,3);imshow(g);xlabel('(c)');subplot(2,2,4);imhist(g);xlabel('(d)');3.6图像的增强滤波上节介绍过的直方图均衡化是图像增强中常用的一种方法,图像增强技术还包括图像平滑滤波、图像锐化等。本节将从线性与非线性、平滑与锐化等不同角度介绍一些实用的空域图像增强技术。3.
8、6.1空域滤波概述图像增强技术从总体上可分为空域增强和频域增强两大类。空域增强也称为空间增强,是直接对图像中的像素进行操作的一种增强过程。空域增强方法大致可分为对比度拉伸、平滑滤波和锐化滤波。灰度拉伸主要是利用点运算来修改图像像素灰度