c++视觉处理---直方图均衡化
直方图均衡化
直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值,以使图像的直方图变得更均匀,从而提高图像的视觉质量。在OpenCV中,您可以使用 cv::equalizeHist 函数来执行直方图均衡化。以下是 cv::equalizeHist 函数的基本用法:
cv::equalizeHist(src, dst);
src: 输入的灰度图像。dst: 输出图像,用于存储均衡化后的结果。
cv::equalizeHist 函数将对输入图像进行直方图均衡化,然后将结果保存在 dst 中。这将使图像的对比度增加,细节更加清晰。
以下是一个示例,演示如何使用 cv::equalizeHist 函数进行直方图均衡化:
#include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("1.jpg", cv::IMREAD_GRAYSCALE); // 灰度图像if (image.empty()) {std::cerr << "无法加载图像" << std::endl;return -1;}cv::Mat equalizedImage;// 执行直方图均衡化cv::equalizeHist(image, equalizedImage);cv::imshow("原始图像", image);cv::imshow("均衡化后的图像", equalizedImage);cv::waitKey(0);return 0;
}
在这个示例中,我们加载了一张灰度图像,然后使用 cv::equalizeHist 函数对图像进行直方图均衡化,最后显示原始图像和均衡化后的图像。直方图均衡化通常用于提高低对比度图像的视觉质量。

相机实时直方图均衡化
#include <opencv2/opencv.hpp>int main() {cv::VideoCapture cap(0); // 打开本地相机(通常是0号摄像头)if (!cap.isOpened()) {std::cerr << "无法打开相机" << std::endl;return -1;}while (true) {cv::Mat frame;cap >> frame; // 从相机捕获一帧图像if (frame.empty()) {std::cerr << "无法捕获图像" << std::endl;break;}cv::Mat grayFrame;cv::cvtColor(frame, grayFrame, cv::COLOR_BGR2GRAY); // 转换为灰度图像// 应用直方图均衡化cv::Mat equalizedFrame;cv::equalizeHist(grayFrame, equalizedFrame);cv::imshow("原始图像", grayFrame);cv::imshow("均衡化后的图像", equalizedFrame);// 检查用户是否按下ESC键,然后退出循环if (cv::waitKey(1) == 27) {break;}}return 0;
}
相关文章:
c++视觉处理---直方图均衡化
直方图均衡化 直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值,以使图像的直方图变得更均匀,从而提高图像的视觉质量。在OpenCV中,您可以使用 cv::equalizeHist 函数来执行直方图均衡化。以下是 cv::equal…...
【LeetCode】2.两数相加
目录 1 题目2 答案2.1 我写的(不对)2.2 更正 3 问题 1 题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返…...
蜘蛛飞机大战
欢迎来到程序小院 蜘蛛飞机大战 玩法: 点击开始游戏,鼠标移动控制方向,可自由移动飞机打剁掉方飞机下落的子弹并打掉敌方飞机,三次生命,不同关卡不同奖励,快去闯关吧^^。开始游戏https://www.ormcc.com/pl…...
代码混淆界面介绍
代码混淆界面介绍 代码混淆功能包括oc,swift,类和函数设置区域。其他flutter,混合开发的最终都会转未oc活着swift的的二进制,所以没有其他语言的设置。 代码混淆功能分顶部的显示控制区域:显示方式,风险等…...
蓝桥杯每日一题2023.10.9
题目描述 成绩统计 - 蓝桥云课 (lanqiao.cn) 题目分析 学会使用四舍五入函数round #include<bits/stdc.h> using namespace std; int s1, s2; int main() {int n, x;cin >> n;for(int i 1; i < n; i ){cin >> x; if(x > 60)s1 ;if(x > 85)s2 ;…...
HTML5的新增表单元素
HTML5 有以下新的表单元素: <datalist> <keygen> <output> datalist datalist 元素规定输入域的选项列表。 datalist属性规定 form 或 input 域应该拥有自动完成功能。当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项&…...
如何在Firefox中配置HTTP?
在浏览器中配置HTTP是一个常见的需求,它可以让我们轻松访问需要的网站或保护个人隐私。本文将为您详细介绍如何在Firefox浏览器中配置HTTP应用,帮助您实现无缝的HTTP体验。无论您是初次接触HTTP还是有一定经验的用户,本文都能为您提供实用的操…...
Android组件通信——消息机制(二十六)
1. 消息机制 1.1 知识点 (1)掌握Message、Handler、Looper类的使用以及消息的传递; (2)可以通过消息机制动态取得信息; 1.2 具体内容 对于android的消息机制,我们主要要使用Java中线程的一…...
《进化优化》第4章 遗传算法的数学模型
文章目录 4.1 图式理论4.2 马尔可夫链4.3 进化算法的马尔可夫模型的符号4.4 遗传算法的马尔可夫模型4.4.1 选择4.4.2 变异4.4.3 交叉 4.5 遗传算法的动态系统模型4.5.1 选择4.5.2 变异4.5.3 交叉 4.1 图式理论 图式是描述一组个体的位模式,其中用*来表示不在乎的位…...
spring:详解spring MVC
spring MVC SpringMVC是一种基于Java的MVC(Model-View-Controller)Web开发框架,通过将业务逻辑、数据和界面分离,使得开发人员能够更高效地管理和维护代码,提高应用的可扩展性和可维护性。 SpringMVC核心概念 Contr…...
【Leetcode】207.课程表
一、题目 1、题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 p r e r e q u i s i t e s [ i ] = [ a i , b...
Ubuntu18.04中QT安装下载安装pcl和vtk以及使用过程中踩过的坑
一、先记录一下下载过程中踩过的坑 问题1:QVTKOpenGLNativeWidget和QVTKWidget 之前从来没有接触过QT中显示3D点云方面的知识,了解到可以用pcl,然后在网上各种找pcl下载的相关内容,想要在QT中显示出来,需要用到VTK&a…...
C++学习——对象数组、成员对象与封闭类
以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 一、对象数组 对象数组,即数组的每个元素都是某个类的对象。 1、对象数组中的每个元素都需要用构造函数初始化,具体哪些元素用哪些构造函数初始化,…...
解锁机器学习-梯度下降:从技术到实战的全面指南
目录 一、简介什么是梯度下降?为什么梯度下降重要? 二、梯度下降的数学原理代价函数(Cost Function)梯度(Gradient)更新规则代码示例:基础的梯度下降更新规则 三、批量梯度下降(Batc…...
day62:ARMday9,I2c总线通信
作业:按键中断实现LED1、蜂鸣器、风扇 key_in.c: #include "key_in.h"void gpio_init() {//RCC使能//GPIOERCC->MP_AHB4ENSETR | (0x1<<4);//GPIOBRCC->MP_AHB4ENSETR | (0x1<<1);//PE10、PB6、PE9输出模式GPIOE->MODER & ~(0…...
【Python学习笔记】类型/运算/变量/注释
前言 人生苦短,追求生产力,做一只时代风口的猪,应该学python Python语言中,所有的数据都被称之为对象。 1. 对象类型 Python语言中,常用的数据类型有: 整数, 比如 3 小数(也叫浮…...
国内常用源开发环境换源(flutter换源,python换源,Linux换源,npm换源)
flutter换源 使用环境变量:PUB_HOSTED_URL FLUTTER_STORAGE_BASE_URL, upgrade出问题时可能会提示设置FLUTTER_GIT_URL变量。 flutter中国 PUB_HOSTED_URLhttps://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn FLUTTER_GIT_URLhtt…...
关于一篇什么是JWT的原理与实际应用
目录 一.介绍 1.1.什么是JWT 二.结构 三.Jwt的工具类的使用 3.1. 依赖 3.2.工具类 3.3.过滤器 3.4.控制器 3.5.配置 3.6. 测试类 用于生成JWT 解析Jwt 复制jwt,并延时30分钟 测试JWT的有效时间 测试过期JWT的解析 四.应用 今天就到这了,希…...
【Method】把 arXiv论文 转换为 HTML5 网页
文章目录 MethodReference https://ar5iv.labs.arxiv.org/ Articles from arXiv.org as responsive HTML5 web pages. 可以将来自 arXiv 的 PDF 论文渲染成 HTML5 网页版本。 Method View any arXiv article URL by changing the X to a 5. 将 arXiv 网址中的 x 换成 5 再回…...
每日一题AC
4.小花和小草正在沙滩上玩挖沙洞的游戏。他们划了一条长度为n米的线作为挖沙洞的参考线路,小花和小草分别从两头开始沿着划好的线开始挖洞,小花每隔a米挖一个洞,小草每隔b米挖一个洞,碰到已经挖过洞的就不需要再挖了。那么&#x…...
FPGA做信号处理,你的浮点加减法拖后腿了吗?聊聊Vivado Floating-point IP核的性能调优
FPGA信号处理中浮点加减法的性能瓶颈与Vivado Floating-point IP核深度调优 在雷达脉冲压缩、波束成形等实时信号处理系统中,浮点运算单元往往是制约整体性能的关键瓶颈。许多工程师在完成基础功能验证后,常发现系统吞吐量不达标或时序无法收敛ÿ…...
嵌入式LED控制库:裸机/RTOS下的确定性状态管理
1. 项目概述"FonctionLED" 是一个面向嵌入式微控制器的轻量级 LED 控制函数库,其设计目标并非提供图形化界面或高级动画引擎,而是聚焦于底层硬件操作的可靠性、可预测性与最小资源占用。从项目标题(法语“LED功能”)和摘…...
TSL2561光传感器Arduino库原理与低功耗工程实践
1. TSL2561光强传感器Arduino库深度解析与工程实践1.1 传感器原理与硬件特性TSL2561是由TAOS(现为AMS)推出的高精度数字环境光传感器,采用CMOS工艺集成双通道光电二极管阵列,分别对可见光(VIS)和红外光&…...
PCB多层板设计:偶数层优势与奇数层解决方案
PCB多层板层数设计解析:偶数层优势与奇数层解决方案1. 多层PCB基础概念与现状PCB(Printed Circuit Board)根据层数可分为单面板、双面板和多层板。现代电子产品中,多层PCB的应用越来越广泛,其层数从4层到超过100层不等…...
数据治理进阶——解读埃森哲大型央企数字化转型数据治理企业架构建设案例【附全文阅读】
该方案聚焦大型央国企数字化转型,适用于企业高层决策者、IT 部门负责人、业务部门管理者以及对数字化转型感兴趣的专业人士。方案主要内容围绕数字化转型展开,涵盖数据治理、企业架构建设等关键领域。在数字化转型部分,明确其目的是释放禁锢价…...
5个核心功能实现全球多语言语音降噪:基于深度滤波的开源解决方案
5个核心功能实现全球多语言语音降噪:基于深度滤波的开源解决方案 【免费下载链接】DeepFilterNet Noise supression using deep filtering 项目地址: https://gitcode.com/GitHub_Trending/de/DeepFilterNet 在当今全球化的语音通信时代,背景噪声…...
WarcraftHelper:开源工具赋能魔兽争霸3现代硬件适配与性能优化全指南
WarcraftHelper:开源工具赋能魔兽争霸3现代硬件适配与性能优化全指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款…...
内存检测从入门到精通:Memtest86+实战指南
内存检测从入门到精通:Memtest86实战指南 【免费下载链接】memtest86plus memtest86plus: 一个独立的内存测试工具,用于x86和x86-64架构的计算机,提供比BIOS内存测试更全面的检查。 项目地址: https://gitcode.com/gh_mirrors/me/memtest86…...
# 发散创新:基于 Rust的分布式数据库架构设计与实战演练在当前云原生和微服务架
发散创新:基于 Rust 的分布式数据库架构设计与实战演练 在当前云原生和微服务架构盛行的背景下,分布式数据库已成为高并发、高可用系统的核心基础设施。本文将深入探讨如何使用 Rust 编程语言构建一个轻量级但功能完整的分布式数据库原型,重点…...
Labelme标注效率翻倍!手把手教你修改源码,让标签信息直接显示在图上(支持Ctrl+T切换)
Labelme标注效率翻倍实战:源码修改实现标签可视化与快捷键切换 在计算机视觉项目的标注环节中,Labelme作为开源标注工具被广泛使用。但实际标注过程中,我们常常遇到一个令人抓狂的问题:当需要检查某个标注框的具体信息时ÿ…...
