【Emgu CV教程】8.2、直方图归一化

文章讲述了直方图在图像处理中的应用,特别是如何通过直方图归一化来消除图像尺寸变化对频次统计的影响。通过CvInvoke函数实现直方图计算和归一化,确保不同分辨率图像间的可比性。
摘要由CSDN通过智能技术生成

直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,因此它的Y轴实际大小,和图像的尺寸有很大关系。同一幅图片,只要改变其尺寸,输出的直方图虽然在整体形状上相似,但肯定会有不同的Y轴最大值。假设原始图像是100 * 100大小,像素值36一共出现25次。那么将其放大到200 * 200,像素值36就会出现100次,Y轴最大值变成了原来的4倍。

为了去掉这个弊端,引入了直方图归一化功能,就是是将原始直方图中每个像素值出现的次数,除以图像总像素数得到新的直方图。这样做就可以将不同分辨率、不同大小的图像进行比较和分析。

基本原理还是根据如下代码,求出原始直方图

CvInvoke.CalcHist(vMatImgs, channelIndex, new Mat(), histogram, hitSize, ranges, false);

直方图就是histogram这个参数,读者可以试一试,原始图像和放大一倍后的图像,用相同的代码,得到的histogram是不一样的,然后再归一化,执行如下代码:

Mat normalizeHistogram = new Mat();
CvInvoke.Normalize(histogram, normalizeHistogram, 0, 255, NormType.MinMax, histogram.Depth); 

得到新的直方图结果normalizeHistogram,原始图像和放大(缩小)后的图像,计算得出的normalizeHistogram值就完全相同了。


原创不易,请勿抄袭。共同进步,相互学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值