- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北工大数字图像处理实验2 直方图均衡
版权声明 本文内的全部内容均由本人编写,可以用来参考学习,但不可用来进行商业活动。一切代码解释权均归作者扎楠所有。所有题目以实验指导书为准。 之所以制作这个word只是为了给将来和即将面对数字图像处理课程的同学一些程序上的参考,避免走弯路,花更多的时间在缤纷多彩的大学生活中,不要纠结于这些琐事。数字图像处理实验二 实验报告一、实验内容: 对图像img2进行直方图均衡(img2为x光片手图像)并绘出均衡前后的直方图。对比实验前后直方图,并进行相应的思考。用一两个例子验证一下程序的正确性。二、过程分析:通过课上的学习,以及课下我阅读的一些关于数字图像处理的书中,我找到了一些关于直方图均衡的原理和实现方法。首先需要进行直方图均衡的图片,它的直方图分布应该不太均衡,要么是分布在灰度值较低的暗色区,要么分布在在灰度值较高的亮色区,或者是集中分布在某一段。如图1所示,灰度值在较低的暗色区比较集中,在高值相对较少,这就造成了图片颜色总体偏暗,对暗色的细节很难分辨。我们要做的,就是通过编程,把他扩展到整个色度段上。图1 主要思路是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。拿到一张图以后,首先要做的是分别统计像素灰度值为0,1,2,…,255的像素点的个数,把结果存入一个256个值的一维数组中,用hf [256]来表示(我都做了红绿蓝三色统计,一方面可以对彩色图像进行处理,一方面可以使输出的直方图能体现更多的细节)。接下来由hf求原图的灰度分布概率,记做pf[256],则有:其中N=W*H(图像的宽和高)为图像总像素点个数。下面计算图像各个灰度值的累计分布概率,记作pa[256],利用循环累加:其中令pa[0]=0。直方图均衡的最后一步就是将原图的所有像素点都替换成均衡后的,该点的像素值g(i,j)为:其中k为原图该点对应的灰度值。至此,直方图均衡就完成了,只要将图片输出,就能够得到均衡后的图了。 至于均衡前后直方图的绘制,我的想法很简单,就是利用之前求的hf[256],再求一个输出图像的统计,统计好每个灰度值对应多少个点,然后通过循环求出同一个灰度值对应的最多的点数,然后除以一个合适的数,将所有点都归一化,比如某图片灰度值为130的点数最多,为10000个,那么我如果想在有限的空间,比如y轴方向为200个点上示意,就需要让所有点数都除以(10000/200),这样就能在一定的空间中把直方图的趋势显示出来。然后在y轴方向画相应的点数来显示直方图。三、程序流程图:四、实验结果显示:1.对img2做的直方图均衡以及前后直方图:可以看出,灰度值的分布更加均匀了,原来很密集的部分变得比较疏松。2.用上课用到的一两个例子验证一下:例1这个是颜色较暗的,均衡后发现对比比较明显了。例2下图是颜色比较亮的,均衡后效果也比较好。五、课后思考按照实验内容,我利用程序分别求出了一下内容:概率非零灰度数;概率非零灰度中最大概率、最小概率、最大最小概率之差;图像中概率大于平均概率的灰度级数;非零概率的平均值和方差。以例2的图像为例,这些结果分别为:由显示可知,均衡前非零灰度数为72,均衡后为66,这是由于灰度级减并造成的非零灰度级减小。概率非零灰度的最大最小概率都相等。概率大于平均概率的灰度级数也都相等。按照课上讲的直方图均衡的例子,这两个值应该不等的才对,可能是在量化或者是单位保留等过程我的设计不是很严谨。原图的非零概率平均值为38,这就造成了图像相对较暗,生成新的图像后,平均值变为130,处于一个中段,这样图像效果较好。同样,新图的方差也比原图大很多,这说明图像的像素值分布比较广,跨越较大,对比较鲜明。 结论:我认为主要是图像的像素平均值和方差还有非零灰度级数影响了图片的成像效果,这些元素在图像的直方图中都能够看出来,原图的直方图灰度级集中在一个区域,而均衡后的在整个轴上都有分布,给人一种把第一个图截取集中的部分,然后在扩展到0~255像素上一样。七、程序源代码#include stdio.h#include windows.h#define H 158//设置需要进行均衡的图像的宽和高#define W 200#define K 500//设置输出直方图的宽和高#define C 500struct pixel//像素结构体{unsigned char B,G,R;}nowP[H][W],newP[H][W],mubanP[C][K],zhiP[C][K];int main(){FILE *fp;//原图、FILE *fout;//均衡后、FILE *ftu;//直方图的模板,这里我用的是500*500的白图FILE *fzhi
文档评论(0)