OpenCV4.0入门(18)图像直方图均衡化

OpenCV-Python实战(8)——直方图均衡化 图像处理技术是计算机视觉项目的核心,通常是计算机视觉项目中的关键工具,可以使用它们来完成各种计算机视觉任务。在本文中,将介绍如何使用 OpenCV 函数 cv2.equalizeHist() 执行直方图均衡,并将其应用于灰度和彩色图像,cv2.equalizeHist() 函数将亮度归一化并提高图像的对比度。 阅读详情

知识点:

图像直方图均衡化:

图像直方图均衡化可以用于图像增强、对输入图像进行直方图均衡化处理,提升后续对象检测的准确率在OpenCV人脸检测的代码演示中已经很常见。此外对医学影像图像与卫星遥感图像也经常通过直方图均衡化来提升图像质量。

相关API:

void equalizeHist( InputArray src, OutputArray dst );

 

代码演示:

#ifndef DAY18
#define DAY18

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

Mat showHistogram(Mat* image);

void day18() {

	// 以灰度方式读取图像
	Mat src = imread("G://opencvTest//flower.jpg", IMREAD_GRAYSCALE);
	if (src.empty()) {
		printf("could not load image...\n");
		return;
	}
	imshow("input", src);

	// 显示直方图
	Mat histImage;
	histImage = showHistogram(&src);
	imshow("Histogram Original", histImage);

	// 直方图均衡化
	Mat dst;
	equalizeHist(src, dst);
	imshow("equalize", dst);

	// 显示直方图
	histImage = showHistogram(&dst);
	imshow("Histogram Equalize", histImage);

	waitKey();
}

Mat showHistogram(Mat* image) {

	// 定义参数变量
	const int ninages = 1;
	const int channels[] = { 0 };
	const int dims = 1;
	//const int bins[] = { 16 };
	const int bins[] = { 256 };
	float hranges[] = { 0, 255 };
	const float* ranges[] = { hranges };

	// 计算直方图
	Mat dest;
	calcHist(image, ninages, channels, Mat(), dest, dims, bins, ranges);

	// 画布参数
	int hist_w = 512;
	int hist_h = 400;
	int bin_w = cvRound((double)hist_w / bins[0]);
	Mat histImage(hist_h, hist_w, CV_8UC3, Scalar(255, 255, 255));

	// 归一化直方图数据,范围是[0, hist_h],
	normalize(dest, dest, 0, hist_h, NORM_MINMAX, -1, Mat());

	// 绘制直方图,注意画布的原点在左上角
	Rect rect;
	for (int i = 1; i < bins[0]; i++) {
		rect.x = bin_w * (i - 1);
		rect.y = hist_h - cvRound(dest.at<float>(i - 1));
		rect.width = bin_w;
		rect.height = cvRound(dest.at<float>(i - 1));
		rectangle(histImage, rect, Scalar(255, 0, 0), -1, LINE_8, 0);
	}

	return histImage;
}

#endif // !DAY18

 

结果展示:

直方图均衡化原理及matlab和opencv实现代码 详细分析了直方图均衡化的数学原理,配有matlab和opencv实现代码 阅读详情

相关推荐

OpenCV-Python实战(7)——直方图详解

直方图是一种强大的技术,可以用于更好地理解图像内容。例如,许多相机在拍照时会实时显示正在捕获的场景的直方图,以调整相机拍摄的一些参数(例如曝光时间、亮度或对比度等)。在本文中,我们将学习直方图的相关概念,以及如何创建直方图。

盼小辉丶的博客 2万+

OpenCV直方图均衡化的实现

目录计算一幅图像的直方图OpenCV计算直方图Histogram1D类的创建图像直方图计算OpenCV直方图均衡 计算一幅图像的直方图 图像是由不同数值的颜色像素组成,像素值在整幅图像中的分布情况是该图像的一个重要属性。直方图(Histogram)是一幅图像分布的精确图形表示。因此,灰度图像的直方图有256个项目。 OpenCV计算直方图 环境:Windows 10, Microsoft Vis...

Kenneth的博客 1万+

OpenCV4.8 开发实战系列专栏之 18 - 图像直方图均衡化

图像直方图均衡化可以用于图像增强、对输入图像进行直方图均衡化处理,提升后续对象检测的准确率在OpenCV人脸检测的代码演示中已经很常见。此外对医学影像图像与卫星遥感图像也经常通过直方图均衡化来提升图像质量。

关注微信公众号【OpenCV学堂】 550

学习c++版opencv3.4之24-直方图均衡化

直方图均衡化equalizeHist。可以用来提高图像对比度 equalizeHist: #include &lt;opencv2/opencv.hpp&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; using namespace cv; Mat src, dst, src_g...

u010397980的博客 2416

opencv vc++/直方图均衡化

配置好opencv 2.244 后 可以直接使用

VC++直方图均衡化显示图像及直方图

采用VC++和opencv对图像进行直方图均衡化,并显示图像及直方图,带有图片,能成功运行

Java OpenCV 图像处理20 直方图比较

Java OpenCV-4.0.0 图像处理19 直方图比较 Java OpenCV-4.0.0 直方图比较 对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间 然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进 而比较图像本身的相似程度。Opencv提供的比较方法有四种: Correlation 相关性比较 Chi-Square 卡方比较 Intersection 十...

风信子 2070

B站DRM视频解密流程实战解析:从密钥获取到播放全流程

本文详细解析了B站DRM视频的解密全流程,从识别加密视频、捕获关键网络请求(如playurl接口的widevine_pssh数据),到逆向分析DRM SDK的JavaScript执行逻辑,最终手动模拟EME流程获取解密密钥,并使用mp4decrypt和ffmpeg工具完成视频文件的解密与合并。文章为开发者提供了从密钥获取到播放的完整实战指南。

weixin_29290379的博客 839

OpenCV4.0入门(17)图像直方图

知识点: 图像直方图的解释: 图像直方图是图像像素值的统计学特征、计算代价较小,具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类、反向投影跟踪。常见的分为 - 灰度直方图 - 颜色直方图 Bins是指直方图的大小范围, 对于像素值取值在0~255之间的,可以有256个bin,此外还可以有16、32、48、1...

Apple_Coco的博客 472

航天仿真必看:如何用SOFA库实现高精度GCRS-ITRS坐标转换?避坑指南

本文深入解析了航天仿真中高精度GCRS-ITRS坐标转换的关键技术,重点介绍了SOFA库在天球系与轨道系转换中的权威应用。通过对比传统方法的误差来源,详细阐述了SOFA库的转换算法优势、工程实现步骤及误差控制策略,为航天器轨道仿真提供毫米级精度的解决方案。

7h6j5k4l3的博客 850

CTF实战:手把手教你用Python破解转轮机加密(附完整脚本)

本文详细介绍了如何使用Python逆向破解转轮机加密,特别针对CTF比赛中的Crypto类题目。通过解析转轮机加密原理、实战Python脚本编写及调试技巧,帮助参赛者快速掌握破解方法,提升在攻防世界等CTF比赛中的解题效率。

silver的专栏 1116

【直方图均衡化】图像处理(OpenCV)-part9

直方图是对数据进行统计的一种方法,并且将统计值组织到一系列实现定义好的 bin 当中。其中, bin 为直方图中经常用到的一个概念,可以译为 “直条” 或 “组距”,其数值是从数据中计算出的特征统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。反映图像像素分布的统计图,横坐标就是图像像素的取值,纵坐标是该像素的个数。也就是对一张图像中不同像素值的像素个数的统计。增加对比度:黑的更黑,白的更白。

2302_77326347的博客 1712

高效IT运维报告编写指南:实战经验与模板分享

本文提供了一份全面的IT运维报告编写指南,涵盖实战经验与实用模板分享。文章详细解析了高效运维报告的核心要素,包括结构设计、数据收集自动化和可视化技巧,并提供了月度报告和故障分析报告模板。通过自动化工具和写作技巧,帮助团队提升报告质量,支持决策和问题追踪。

u5v6w7的博客 927

【直方图均衡化】——图像预处理(OpenCV)

定义:反映图像像素分布规律的统计图,横坐标是图像像素的取值,纵坐标是该像素的个数。

weixin_70972767的博客 1160

基于AC算法的图像显著性检测及Matlab代码实现

以上是基于AC算法的图像显著性检测的Matlab代码实现。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。

TechPulseZ的博客 438

JMeter压力测试全攻略:从入门到精通

本文系统讲解JMeter压力测试的完整流程与结果评估方法。开篇介绍压力测试的核心概念及JMeter工具特性,随后从环境搭建入手,详细说明JDK配置、JMeter安装及中文界面设置。主体部分围绕测试流程展开,涵盖测试计划创建、线程组参数调优、HTTP请求配置、断言与监听器添加等实操步骤;结果评估环节深入解析聚合报告指标、结果树分析及性能瓶颈定位方法,并通过电商接口测试案例演示全流程应用。文末总结关键要点,为读者提供从基础操作到分布式压测、性能调优的进阶学习方向,助力掌握JMeter在系统性能评估中的核心应用。

邓邓子的博客 2416

OpenCV-Python——第18.2章:图像直方图均衡化

目录 0 原理       1 OpenCV 中的直方图均衡化       2 CLAHE 有限对比适应性直方图均衡化 0 原理 想象一下如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样呢?例如,如果一幅图片整体很亮,那所有的像素值应该都会很 高。但是一副高质量的图像的像素值分布应该很广泛。所以你应该把它的直方 图做一个横向拉伸(如下图),这就是直方图均衡化要做的事情。通...

YukinoAI的博客 1351

(2-2-2)位置控制算法:常用的位置控制算法(2)

例如下面是一个使用滑模控制算法实现机器人位置控制的例子,在该例子中,假设机器人在一维空间中移动,目标是使机器人的位置迅速、鲁棒地达到设定的目标位置。自适应控制算法通过实时地调整控制器参数,可以适应系统的变化,从而提高系统的鲁棒性和性能。模型预测控制(Model Predictive Control,MPC)是一种先进的控制策略,通常应用于动态系统,以实现对系统状态的优化控制。(6)迭代优化:随着时间推移,MPC迭代执行上述步骤,持续优化控制输入,以适应系统动态和外部扰动,实现对系统状态的稳健控制。

码农三叔 1608

4.2 直方图均衡化

上一章我们简单介绍了一下什么是直方图,并且举例说明了一下不同特点的图像的直方图有什么不同,这一章我们讨论直方图均衡化。

专注图形图像处理 957

【即插即用模块】Transformer篇 | CVPR 2025 | D2T:双域特征融合,完美适配缺陷检测/小目标检测和分割等频域细节敏感的任务!

本文提出了一种基于小波和原型增强的双域Transformer(WPFormer)用于像素级表面缺陷检测。该模型通过Dual-domain Transformer (D2T)模块融合频域和空间域特征:小波增强交叉注意力(WCA)分解高低频特征并加权平衡,增强缺陷细节捕捉;原型引导注意力(PCA)生成全局原型向量强化关键信息聚合。实验表明,该模块在缺陷检测任务中性能优于现有方法,通过频域细节增强和全局依赖建模有效提升了复杂场景下的检测效果。代码已开源,适用于对频域敏感的目标检测和分割任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1374

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OpenCV C++基本操作入门学习

确定卷积核的大小和权重。

VJOEE的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机视觉——Opencv(直方图均衡化)

直方图均衡化:是一种图像增强技术,它可以通过增加图像的对比度和亮度来改善图像的质量。实现方法:通过将图像的像素值分布均匀化来实现这一目标。在Python OpenCV中,可以使用cv2.equalizeHist()函数来实现直方图均衡化。

2401_83998832的博客 1223

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【OpenCV 4开发详解】直方图应用

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 直方图不仅能够表示图像像素的统计特性,应用统计的直方图结果也...

小白学视觉 763

OpenCV学习18-直方图均衡化-Opencv方法

''' 直方图均衡化,如何使用它来改善图片的对比。 如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样 呢?例如,如果一幅图片整体很亮,那所有的像素值应该都会很高。但是一副 高质量的图像的像素值分布应该很广泛。所以你应该把它的直方图做一个横向 拉伸(如下图),这就是直方图均衡化要做的事情。通常情况下这种操作会改 善图像的对比度。 使用Numpy ''' import cv2 a...

weixin_43838889的博客 255

【OpenCV 例程300篇】47. 直方图处理之直方图匹配

直方图均衡直接对图像全局进行均衡化,生成具有均匀直方图的图像,并不考虑局部图像区域的具体情况。对于一幅图像的局部区域、具体缺陷,有时需要生成具有特殊形状直方图的图像。 直方图匹配又称为直方图规定化,是指将图像的直方图调整为规定的形状。 例如,将一幅图像或某一区域的直方图匹配到另一幅影像上,使两幅影像的色调保持一致。 欢迎关注 [『OpenCV 完整例程 100 篇』](https://blog.csdn.net/youcans/category_11459626.html) 系列...

youcans的博客 1万+

OpenCV 直方图的应用(均衡化和图像比较)

OpenCV 直方图的应用(均衡化和图像比较)

m0_37302966的博客 679
上一篇: OpenCV4.0入门(17)图像直方图
下一篇: OpenCV4.0入门(19)图像直方图比较
Apple_Coco
博客等级 码龄9年 325粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Apple_Coco

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

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

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

打赏作者

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

抵扣说明:

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

余额充值