cv2小记——直方图均衡化
发布日期:2021-06-30 15:01:45
浏览次数:2
分类:技术文章
本文共 1287 字,大约阅读时间需要 4 分钟。
# coding: utf-8 # !/usr/bin/python"""@File : 直方图均衡化.py@Author : jiaming@Modify Time: 2020/2/6 15:24 @Contact : https://blog.csdn.net/weixin_39541632@Version : 1.0@Desciption : 直方图均衡化 将山峰灰度图转化为平原灰度图"""import osimport sysimport numpy as npimport cv2import pprintfrom matplotlib import pyplot as pltrawPath = os.path.abspath(__file__)currentFile = os.path.basename(sys.argv[0])dataPath = rawPath[:rawPath.find(currentFile)] + r'static\\'
img = cv2.imread(dataPath+'big_deep.png', 0)hist, bins = np.histogram(img.flatten(), 256, [0, 256])cdf = hist.cumsum()cdf_normalized = cdf * hist.max() / cdf.max()plt.plot(cdf_normalized, color='b')plt.hist(img.flatten(), 256, [0, 256], color='r')plt.xlim([0, 256])plt.legend(('cdf', 'histogram'), loc='upper left')plt.show()可以看出直方图大部分在灰度值较高的部分,而且分布很集中,而我们希望直方图分布比较分散,能够涵盖整个x轴。所以我们就需要一个变换函数帮助我们把现在的直方图映射到一个广泛分布的直方图中。这就是直方图均衡化的要做的事情。
img = cv2.imread(dataPath+'big_deep.png', 1)# 彩色图像均衡化,需要分解通道 对每一个通道均衡化(b, g, r) = cv2.split(img)bH = cv2.equalizeHist(b)gH = cv2.equalizeHist(g)rH = cv2.equalizeHist(r)# 合并每一个通道result = cv2.merge((bH, gH, rH))cv2.imshow("dst", result)cv2.waitKey(0)即使我们传入的是一个比较暗的图片,在经过直方图均衡化后y也能得到相同的结果,因此,直方图均衡化经常用来使所有的图片具有相同的亮度条件的参考工具。 常用于脸部识别,在训练分类器前,训练集的所有工具都先要经过直方图均衡化从而使它们达到相同的亮度条件。
转载地址:https://jiaming.blog.csdn.net/article/details/104197423 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月10日 09时52分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
为什么币圈的基础设施越来越多
2019-05-01
区块链投资要注意这几点
2019-05-01
市场套利策略是什么
2019-05-01
跨市场套利怎么处理
2019-05-01
当博士进入币圈会怎么样
2019-05-01
以太坊技术分解
2019-05-01
以太坊技术怎么提供安全性
2019-05-01
如何验证以太坊技术安全性
2019-05-01
数字货币的投资正确之路
2019-05-01
委员会怎么验证比特币真伪
2019-05-01
迅雷陷入窘迫,但是无可替代
2019-05-01
PHP之 使用PHPMailer插件实现邮件发送功能
2019-05-01
Linux之 关于VM虚拟机网卡的设置
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第一部分 方法
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第二部分 实战
2019-05-01
Mysql学习笔记(10):事务、视图
2019-05-01