直方图均衡化原理和实现
创作时间:
作者:
@小白创作中心
直方图均衡化原理和实现
引用
CSDN
1.
https://m.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);
}
热门推荐
电动轮椅日常维护小贴士:你真的做对了吗?
知识蒸馏技术原理详解:从软标签到模型压缩的实现机制
谷歌:弱模型数据合成更有助于LLM推理
超轻电动轮椅电池保养秘籍
国庆打卡瑞金红色景点,感受革命精神
瑞金周边小众景点打卡:白溪&杨家溪
秋日打卡:香山红叶、八达岭长城、什刹海泛舟
天门山打卡!张家界七日游攻略
挂壁公路在哪,郭亮挂壁公路
泉州秋冬美食全攻略:从早餐到夜宵,这些地道美食不容错过!
清源山:泉州必打卡的5A级景区,老君岩造像展现千年道教文化
罗城古镇:春节里的文化盛宴与人间烟火
赣州十大特色名菜:从三杯鸡到牛肉汤,品味赣南美食文化
ISO 7176-25标准下的电动轮椅电池技术解析
文化赋能,千年古村展新颜——广州三华村的乡村振兴之路
企业微信会话存档:告别职场聊天记录丢失烦恼
瑞金罗汉岩:打卡江南第一岩!
国庆打卡瑞金:长征出发地的红色记忆
跟着恩施丹丹玩转七日游!
恩施七日游必打卡:格格、炕土豆、油香儿
打卡恩施大峡谷和清江画廊:绝美自然景观不容错过!
秋季养生:苹果雪梨萝卜金桔甜汤,润肺止咳又养生
过敏脸肿怎么办?5种治疗方法全解析
探访广东海洋大学阳江校区:化蛹成蝶的秘密
广东海洋大学阳江校区王牌专业揭秘:食品科学与工程和水产养殖学
广东十大温泉之首:碧水湾温泉度假村全攻略
广东温泉未来一周多云有雾,注意保暖
广东第一峰亲子温泉游:1902米云端泡汤,尽享冬日乐趣
山东最有名的2座5A级古城,其中1座是青州古城,你去过吗?
北京国际运河艺术周开幕,世界艺术与多元文化荟萃,打造黄金周京城文旅新亮点!