《数字图像处理》课内实验-new.doc

*** *** 《数字图像处理》课内实验 实验一 直方图均衡 一、实验题目: 直方图均衡 二、实验目的: 在学习图像直方图的概念、计算方法、性质和相关使用基础上,生成、绘制图像的直方图,并使用MATLAB编程实现图像直方图均衡化程序。 三、实验内容: (1)计算并绘制图像直方图; (2)编程实现图像的直方图均衡化处理,显示均衡前后的直方图和图像; 四、预备知识: (1)熟悉图像读写和显示; (2)理解图像直方图的概念及用途; (3)理解直方图均衡化的概念及使用背景; 五、实验原理: 在对图像进行处理之前,了解图像整体或局部的灰度分布情况非常必要。对图像的灰度分布进行分析的重要手段就是建立图像的灰度直方图(Density Histogram),利用图像灰度直方图,可以直观地看出图像中的像素亮度分布情况;通过直方图均衡化,可以对图像的质量进行调整。 (1)生成并绘制图像的直方图 假设一幅数字图像的像素总数为N,在范围[0,G]内共有L个灰度级,其直方图定义为离散函数,其中,rk是区间[0,G]内的第K级的亮度,nk是灰度级为rk的图像中的像素数。 对于uint 8类图像,G的值为255;对于uint 16类图像,G的值为65535;对于double类图像,G的值为1.0。记住,MATLAB中的索引不能为0,故r1相当于灰度级0,r2相当于灰度级1,如此等等,rL相当于灰度级G。其中,uint 8类图像或uint 16类图像中G=L-1。 通常,会用到归一化直方图,即用所有元素h(rk)除以图像中的像素总数N所得到的图形: P(rk)表示灰度级rk出现的频数。 MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,其调用格式为: imhist(I,b) [COUNTS,X] = imhist(I) 其中I为输入图像,b为指定的灰度级数目,默认值为256。[COUNTS,X]=imhist(…)返回直方图统计的数据和相应的灰度级向量X。使用表达式p= imhist(I,b)/N就可简单地获得归一化直方图,这里N为图像中的像素总数。显示图像’lean.bmp’的直方图及归一化直方图,如图1.2 (a) 原图 (b) 直方图 (c) 归一化直方图 图1.2 如果图像的灰度分别集中在较窄的区间,从而引起图像细节的模糊,为了增强图像,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现。这种方法是以概率论为基础的,常用的方法有直方图均衡化和直方图匹配(规定化)。 (2) 直方图均衡化 直方图均衡化也叫做直方图均匀化,是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像,此时图像的熵最大,图像所包含的信息量最大,且扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果。 设一幅图像总像元数为N,灰度级的个数为L,第K个灰度级rk出现的频数为nk,则第k灰度级出现的概率为 此时变换函数可表示为 根据原图像的直方图统计值就可算出均衡化后各像元的灰度值。直方图上灰度分布较密的部分被拉伸;灰度分布较稀疏的部分被压缩,使图像对比度总体上得到增强。 MATLAB图像处理工具箱提供了直方图均衡函数histeq。其调用格式为: J = histeq(I,n); [J,T] = histeq(I,…); 其中,n是均衡化后的灰度级数目,是一个可选参数,缺省值是64。[J,T]=histeq(I,…)返回能从图像I的灰度直方图变换成图像J的直方图的变换函数T。显示图像’RSImg.gif’的直方图均衡化前后的图像及对应的直方图,如图2-3所示。 (a)原图像 (b) 直方图均衡化后图像 (c) 原图的直方图 (d) 均衡化后的直方图 图1.2.3 直方图均衡化前后的图像及其直方图 经过均衡化后,原图中较暗区域中的一些细节更清晰。 六、实验步骤: (1)打开一幅灰度图像,利用MATLAB工具箱所提供的函数计算并绘制图像的直方图和归一化直方图; (2)利用相应的MATLAB函数对灰度图像进行直方图均衡化,显示均衡化后的图像及对应的直方图,分析均衡化后图像有何变化,均衡化后的直方图有何特点; 七、思考题 (1) 灰度直方图可以反映一幅图像的哪些特征? (2) 均衡化后的直方图有何特点? 八、实验程序代码: (1)生成并绘制灰度图像的直方图及归一化直方图 clear all; I=imread(lena_gray_256.tif); %打开一幅灰度图像 [m,n]=size(I); p=m*n; J=imhist(I)./p;

文档评论(0)

1亿VIP精品文档

相关文档