【OpenCV学习笔记28】- OpenCV 中的直方图 - 直方图 - 2:直方图均衡

本文介绍了OpenCV中图像处理技术,包括直方图均衡的概念和Numpy实现,以及对比度受限的自适应直方图均衡(CLAHE)的应用。作者通过实例演示了如何使用这些技术提升图像对比度,适合OpenCV初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子,也会给出自己根据官方的例子完成的更改代码,同样彩蛋的实现也会结合多个知识点一起实现一些小功能,来帮助我们对学会的知识点进行结合应用。
如果有喜欢我笔记的请麻烦帮我关注、点赞、评论。谢谢诸位。

学习笔记:
学习笔记目录里面会收录我关于OpenCV系列学习笔记博文,大家如果有什么不懂的可以通过阅读我的学习笔记进行学习。
【OpenCV学习笔记】- 学习笔记目录

内容

  • 我们将学习直方图均衡的概念,并用它来提高图像的对比度。

理论

考虑一个图像,其像素值仅局限于某个特定的值范围。例如,较亮的图像会将所有像素限制为高值。但好的图像将具有来自图像所有区域的像素。因此,您需要将该直方图拉伸到两端(如下图所示,来自维基百科),这就是直方图均衡的作用(简单来说)。这通常会提高图像的对比度。
在这里插入图片描述
我建议您阅读关于 直方图均衡 的维基百科页面以获取有关它的更多详细信息。它有很好的解释和示例,因此您在阅读后几乎会理解所有内容。相反,在这里我们将看到它的 Numpy 实现。之后,我们将看到 OpenCV 函数。

Numpy 实现直方图均衡

示例代码:

# OpenCV 中的直方图
# 直方图 - 2:直方图均衡
# 理论
# numpy 的直方图均衡实现
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt

img = cv.imread('../image/3.7.1.png', 0)
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
cdf = hist.cumsum()
cdf_normalized = cdf * float(hist.max()) / cdf.max()
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.show()
plt.plot(cdf_normalized, color='b')
plt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜七天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值