资源描述:
《数字图像处理实验二 图像灰度变换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二图像灰度变换实验一、实验目的熟悉亮度变换函数的使用熟悉灰度图像的直方图的表示;掌握图像增强的基本方法:灰度变换、直方图均衡;二、实验内容灰度线性变换、灰度直方图、直方图均衡处理;灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。三、实验原理1.函数imadjust函数imadjust是对灰度图像进行亮度变换的基本命令,语法为:g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)将图
2、像f中的亮度值(灰度值)映射到新图像g中,即将low_in至high_in之间的值映射到low_out至high_out之间的值。low_in以下的灰度值映射为low_out,high_in以上的灰度值映射为high_out,函数imadjust的矩阵[]内参数均指定在0和1之间,[low_inhigh_in]和[low_outhigh_out]使用空矩阵[]会得到默认值[01]。若high_out小于low_out,则输出图像会反转。参数gamma指定了曲线(变换函数)的形状,若gamma小于1,则映射被加权至更高(更亮)的输出值;若gam
3、ma大于1,则映射被加权至更低(更暗)的输出值。若省略了函数的参量gamma,则gamma默认为1——即线性映射。>>f=imread(‘filename’)>>imshow(f)>>g1=imadjust(f,[01],[10]);%图像反转>>figure,imshow(g1)%figure命令表示同时显示多个窗口>>g2=imadjust(f,[0.50.75],[01]);%将0.5至0.75之间的灰度级扩展到范围0和1之间>>figure,imshow(g2)>>g3=imadjust(f,[],[],2)%使用gamma值>>fi
4、gure,imshow(g3)1.直方图处理与函数绘图图像的直方图定义为离散函数:h(rk)=nk绘制图像的直方图,函数imhist,语法为:h=imhist(f,b)f为输入图像,h为直方图h(rk),b是用于形成直方图的灰度级个数,若b省略,则默认值为256。函数numel(f)可给出图像f的象素个数,有了它可归一化直方图:p=imhist(f,b)/numel(f)>>imhist(f)%MTALAB默认显示的图像f的直方图MATLAB中其它一些有代表性的绘制函数选项:(1)用条形图绘制直方图函数bar(horz,v,width),其中
5、,v是一个行(列)向量,它包含将被绘制的点;horz是一个与v有相同维数的向量,它包含水平标度值的增量;width是一个在0到1之间的数,表示竖条宽度,width值为1时,竖条较明显;当width的值为0时,竖条是简单的垂直线;width的默认值是0.8。在绘制条形图时,我们通常会将水平轴等分为几段,以便降低水平轴的分辨率。下面的语句将生成一副条形图,其水平轴以10个灰度级为一组:>>h=imhist(f)>>h1=h(1:10:256)>>horz=1:10:256>>bar(horz,h1)>>axis([0255015000])%axi
6、s函数设置了水平轴和垂直轴的最大和最小值,语法为:%axis([horzminhorzmaxvertminvertmax])>>set(gca,‘xtick’,0:50:255)>>set(gca,‘ytick’,0:2000:15000)%参数gca表示“获得当前轴”(即最终显示的图形的轴),参数xtick和%ytick按所示的间隔设置水平轴和的垂直轴的刻度。%这两个语句中,坐标轴的取值范围和刻度线都是人工设定的。使用函数%xlim(‘auto’)和ylim(‘auto’)可以自动设定坐标轴的取值范围和刻度线。(2)用杆状图绘制直方图函数s
7、tem(horz,v,‘color_linestyle_marker’,‘fill’),参量color_linestyle_marker来自下表的三个值:颜色_线形_标记例如,stem(v,‘r--s’)生成一副杆状图,其线条与标记点都为红色,线条为虚线,标记点为方形。若使用fill,且标记点为圆形、方形、菱形,则标记点的颜色会是color指定的颜色。默认颜色是black黑色,默认线条为solid实线,默认标记点的形状是circle圆形。>>h=imhist(f)>>h1=h(1:10:256)>>horz=1:10:256>>stem(ho
8、rz,h1,‘fill’)>>axis([0255015000])>>set(gca,‘xtick’,0:50:255)>>set(gca,‘ytick’,0:20