直方图均衡化原理和实现
创作时间:
作者:
@小白创作中心
直方图均衡化原理和实现
引用
CSDN
1.
https://blog.csdn.net/xiaofeixia002X/article/details/136700700
直方图均衡化是一种常用的图像增强技术,主要用于改善图像的对比度。其基本思想是将原始图像的直方图分布转换为一个均匀分布的直方图,这样原图中的高频率亮度值会被展宽,而低频率亮度值则被压缩,从而达到增强图像对比度的效果。
计算过程
假设我们有一个灰度图像,其像素值范围从0到L-1(对于8位图像,L=256)。直方图均衡化的计算步骤如下:
- 计算原始直方图:对于灰度级i,计算图像中灰度级为i的像素数目,记为h(i)。
- 计算累积分布函数(CDF):累积分布函数是直方图的一个累积和,对于灰度级i,CDF计算如下:
- 归一化CDF:将CDF的值归一化到0到L-1的范围内。这可以通过以下公式完成:
- 应用均衡化映射:最后,对每个像素,使用归一化的CDF值来替换原始图像中的灰度值,这样就得到了均衡化后的图像。
例子
假设图像的像素值如下:
1, 3, 0, 2, 1, 3, 3, 2
- 首先,计算这个图像的直方图:
灰度级: 0 1 2 3
数量: 1 2 2 3
- 计算累积分布函数(CDF):CDF对于每个灰度级i,累积从0到i的像素数量。因此,对于我们的例子:
灰度级: 0 1 2 3
CDF: 1 3 5 8
- 归一化CDF:将CDF归一化到0到255的范围(对于8位图像)。归一化的公式是:
对于我们的例子,M ×N = 8(图像的像素总数),CDF_{min} = 1(CDF中的最小值),L = 4(灰度级总数)。因此,归一化CDF为:
灰度级: 0 1 2 3
归一化CDF: 0 85 170 255
- 应用均衡化映射:最后,根据归一化的CDF来更新图像的像素值。每个原始像素值i都被映射为归一化CDF中的相应值。因此,原图像像素值转换后为:
原始图像: 1 3 0 2 1 3 3 2
均衡化后: 85 255 0 170 85 255 255 170
由于简化了范围,实际应用中,这些新的像素值将会根据实际情况进行调整,以匹配原图像的灰度级范围。在现实操作中,直方图均衡化后的图像将展现更好的对比度和亮度分布。
实现1-只针对灰度图像
// 直方图均衡化
void QuickDemo::histogram_eq_demo(Mat &image) {
Mat gray, dst;
cvtColor(image, gray, COLOR_BGR2GRAY);
equalizeHist(gray, dst);
imshow("Raw gray", gray);
imshow("EqualizeHist", dst);
}
热门推荐
马道派出所“护学岗”:守护校园安全的坚实力量
北海市公安局:儿童安全守护神
警民携手护童安:各地迎警察节安全教育活动精彩纷呈
从朴素到华丽:清朝宫女服饰的真实与虚构
三文鱼的热量与营养,你知道多少?
健身达人最爱的低卡高蛋白鱼肉
三文鱼低卡料理,懒人也能做!
从战神到海神:十二星座守护神与现代人性格解读
战神阿瑞斯才是白羊座守护神,破解星座神话误解
从战神到海神:十二星座的希腊神话守护神全解析
白羊座守护神阿瑞斯:战神性格与白羊特质的完美契合
香港消委会测试揭示:如何选购正宗挪威深海鱼油
科学服用深海鱼油:最佳时间、剂量和注意事项
深海鱼油怎么吃?专家推荐最佳服用时间和剂量
拍打八个穴位,调畅全身气血:详解中医“拍八虚”养生法
从呼吸道到肌肉关节,10种中成药应对各类炎症
尿检隐血偏高怎么办?这些原因和处理方法要了解
英雄联盟小丑梗走红全网,折射现代人生活无奈
精通Excel:数据处理、分析与可视化的职场利器
Excel统计符合条件列数的三种方法:COUNTIF、SUMPRODUCT和高级筛选
阳江美食图鉴:从炊鹅到泥虫粥,品味岭南饮食文化
新西兰麦卢卡蜂蜜:从科学发现到胃炎治疗新选择
麦卢卡蜂蜜:解锁养生新姿势,让健康美味兼得
冬季游云南,昆明南站到西双版纳列车时刻表及票价
昆明南站出发,打卡抚仙湖最美自驾游线路
静息心率透露的健康秘密,你的心跳在说啥?
中医养生新潮流:敲胆经,健康加倍!
警察节特辑:警民携手守护儿童安全
警民携手护童安:各地警方开展儿童安全教育主题活动
“工部司”和《仪制令》:古人的交通执法神器