直方图学习

直方图均衡化(Histogram Equalization)是一种用于增强图像对比度的图像处理技术,通过重新分配图像的像素值,使图像中的亮度级别更加均匀,以改善图像的视觉质量。下面是进行直方图均衡化的一般步骤:

  1. 计算原始图像的直方图:首先,计算原始图像的灰度直方图,以了解不同亮度级别的像素数量分布。

  2. 计算累积分布函数(CDF):对于每个亮度级别,计算其累积分布函数(CDF),这是一个表示在该亮度级别以下像素数量累积的函数。CDF可以通过对灰度直方图进行累积求和来计算。

  3. 归一化CDF:将CDF的值归一化到[0, 255]的范围内。这可以通过以下公式来实现:

    CDF_normalized = (CDF - min(CDF)) / (M * N - 1) * 255

    其中,MN 是图像的宽度和高度。

  4. 映射像素值:对于原始图像中的每个像素,将其亮度级别映射到归一化的CDF值。具体地,用归一化CDF值替换原始像素值。

  5. 生成均衡化后的图像:将所有像素的亮度级别替换后,生成均衡化后的图像。

下面是一个Python示例,演示如何使用OpenCV库进行直方图均衡化:

复制代码

pythonCopy code

import cv2 # 读取原始图像 image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE) # 计算直方图 hist = cv2.calcHist([image], [0], None, [256], [0, 256]) # 计算累积分布函数 cdf = hist.cumsum() # 归一化CDF cdf_normalized = cdf * 255 / cdf[-1] # 映射像素值 equalized_image = cdf_normalized[image] # 保存均衡化后的图像 cv2.imwrite('output.jpg', equalized_image)

相关推荐
IT 行者5 分钟前
LangChain4j 集成 Redis 向量存储:我踩过的坑和选型建议
java·人工智能·redis·后端
YuanDaima20486 分钟前
LangChain基础配置与对话模型实战
人工智能·python·langchain·大模型·智能体·langgraph
团子和二花12 分钟前
Mem0:给 AI Agent 装上「长期记忆」
人工智能
chase。14 分钟前
【学习笔记】基于扩散模型的运动规划学习与适应
人工智能·笔记·学习
机器觉醒时代16 分钟前
RL Token:破解 VLA “最后一厘米”精度难题,在线强化学习实现机器人精准操控
人工智能·机器人·强化学习·具身智能·vla模型
Thomas.Sir16 分钟前
第三章:RAG知识库开发之【RAG系统工作流程详细解析:从数据源到智能问答的全链路实战指南】
人工智能·ai·rag·离线处理·在线查询
电子科技圈26 分钟前
Durin:Aliro标准赋能,打造无缝移动入户体验
人工智能·mcu·物联网·网络协议·智能家居·智能硬件·iot
AI先驱体验官39 分钟前
AI智能体赛道新机遇:2026机会与挑战深度解析
大数据·人工智能·深度学习·重构·aigc
YUNDUANNET40 分钟前
AI驱动,不止于概念 | VeryCloud联合亚马逊云科技深度解读OpenClaw开发范式革命
人工智能·科技·openclaw
热爱生活的猴子1 小时前
什么情况是训练好验证差,什么情况判定为收敛慢,什么情况下判定为震荡,什么情况下说明是泛化差
人工智能·深度学习·机器学习