c++视觉处理---直方图均衡化

news2024/11/19 6:22:45

直方图均衡化

直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值,以使图像的直方图变得更均匀,从而提高图像的视觉质量。在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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Xcode 14.3.1build 报错整理

1、Command PhaseScriptExecution failed with a nonzero exit code 2、In /Users/XX/XX/XX/fayuan-mediator-app-rn/ios/Pods/CocoaLibEvent/lib/libevent.a(buffer.o), building for iOS Simulator, but linking in object file built for iOS, file /Users/XX/XX/XX/fayuan…

ASAN入门参考

目录 Asan 是什么&#xff1f; Asan 功能 缓冲区溢出 悬空指针&#xff08;引用&#xff09; 非法释放 内存泄漏 如何使用 实验环境 内存泄露检查 demo1 demo2 堆缓冲区溢出 栈缓冲区溢出 使用悬空指针 使用栈上返回的变量 使用退出作用域的变量/内存 重复释放…

逐字稿 | 对比学习论文综述【论文精读】

对比学习在计算机视觉领域的发展历程&#xff0c;4个阶段&#xff1a; 百花齐放&#xff1a;方法、模型、目标函数、代理任务都还没有统一。CV双雄&#xff1a;MOCOv1、SimCLRv1、MOCOv2、SimCLRv2、CPC和CMC的延伸工作、SwaV&#xff0c;这个阶段发展非常迅速&#xff0c;以上…

好莱坞编剧大罢工终于结束;与OpenAI创始人共进早餐;使用DALL-E 3制作绘本分享;生成式AI的基础设施架构 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 好莱坞编剧大罢工终于结束&#xff1a;简单说就是AI妥协了 https://www.wgacontract2023.org/the-campaign/summary-of-the-2023-wga-…

【Pytorch】深度学习之损失函数

文章目录 二分类交叉熵损失函数交叉熵损失函数L1损失函数MSE损失函数平滑L1(Smooth L1)损失函数目标泊松分布的负对数似然损失KL散度MarginRankingLoss多标签边界损失函数二分类损失函数多分类的折页损失三元组损失HingEmbeddingLoss余弦相似度CTC损失函数参考资料 学习目标&am…

CS配合frp上线

代理使用场景 1、拿下远程web服务器 2、webshell链接不稳定&#xff0c;需要使用稳定的木马程序 3、远程服务器无法直接链接攻击者电脑 4、需要借助公网vps转发来自失陷服务器的木马流量 5、借助frp服务端(vps)和客户端(内网攻击者)建立隧道 6、当vps某一个端口收到流量的…

Jenkins更换主目录

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改&#xff1a; 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…

Ubuntu 启用 root 用户

打开 ubuntu 的终端&#xff0c;现在的命令行是由 zz-virtual-machine:~$ 这几个字母组成&#xff0c;那么这几个字母代表意思为&#xff1a; z当前操作用户是固定格式z-virtual-machine代表的是主机名~代表当前目录名$代表普通用户操作权限#代表 root 用户权限 在安装系统的时…

《论文阅读:Dataset Condensation with Distribution Matching》

点进去这篇文章的开源地址&#xff0c;才发现这篇文章和DC DSA居然是一个作者&#xff0c;数据浓缩写了三篇论文&#xff0c;第一篇梯度匹配&#xff0c;第二篇数据增强后梯度匹配&#xff0c;第三篇匹配数据分布。DC是匹配浓缩数据和原始数据训练一次后的梯度差&#xff0c;DS…

nginx反向代理IIS实现80默认端口,不需要输入端口访问

IIS的网站 端口是8086 Nginx 配置指向IIS的8086 这样可以不用输端口,nginx/confi/nginx.conf server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html ;index index.html index.htm;}location /h…

配电柜远程控制系统:智能化时代的电力管理新篇章

随着科技的发展&#xff0c;电力系统数字化、智能化成为一种趋势。越来越多的市场需求和数字化的政策导向&#xff0c;让配电柜远程控制成为可能&#xff0c;力安科技电易云配电柜远程控制系统应运而生&#xff0c;这种系统利用先进的通信和计算机、人工智能等技术&#xff0c;…

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证。 kafka安全涉及3部份:传输加密,用户认证与授权,ZK开启ACL(Zookeeper存储了kafka的元数据以及用户信息,默认不开启acl所有用户可改,内网环境机器不对外开放可考虑使用默认不开启ZK ACL)。 官网地址:https://kafka.ap…

dockerfile 搭建lnmp+wordpress,docker-compose搭建lnmp+wordpress

目录 dockerfile 搭建lnmpwordpress 部署nginx&#xff08;容器IP 为 172.18.0.10&#xff09; 部署mysql&#xff08;容器IP 为 172.18.0.20&#xff09; 部署php&#xff08;容器IP 为 172.18.0.30&#xff09; docker-compose搭建lnmpwordpress dockerfile 搭建lnmpword…

LeetCode 2562. 找出数组的串联值【数组,相向双指针】1259

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

电子笔记真的好用吗?手机上适合记录学习笔记的工具

提及笔记&#xff0c;不少人都会和学习挂钩&#xff0c;的确学习过程中我们经常会遇到很多难题&#xff0c;而经常记录笔记可以有效地帮助大家记住很多知识&#xff0c;而且时常拿出笔记查看一下&#xff0c;可方便巩固过去学习的知识。 手机作为大家日常随身携带的工具&#…

golang 拉取 bitbucket.org 私有库

以 bitbucket.org 平台和mac电脑为例 前置条件私库需要给你账号权限&#xff0c;可拉取的权限&#xff0c;否则无法进行正常拉取 我们采用ssh方式&#xff0c;需要在本地生成对应的 rsa 的公钥和私钥&#xff0c;将公钥配置如下图&#xff1a; 在 .ssh/config 写入你的配置 H…

工业环网交换机运行原理

在智能制造领域&#xff0c;工业环网交换机是一种必不可少的网络设备。该技术通过将各种工业设备、传感器和机器人连接到同一网络中&#xff0c;实现了高效的数据传输和快速的信息交流。在本文中&#xff0c;我们将讨论工业环网交换机的运行原理&#xff0c;以帮助您更好地了解…

文心一言 VS 讯飞星火 VS chatgpt (112)-- 算法导论10.2 3题

三、用go语言&#xff0c;用一个单链表L实现一个队列。要求操作 ENQUEUE 和 DEQUEUE 的运行时间仍为O(1)。 文心一言&#xff1a; 在 Go 语言中&#xff0c;使用单链表实现队列的操作&#xff0c;包括入队&#xff08;ENQUEUE&#xff09;和出队&#xff08;DEQUEUE&#xff…

练习之C++[2]

文章目录 1.栈和堆2.new和delete3.内存区域 1.栈和堆 对于栈来讲&#xff0c;生长方向是向下的&#xff0c;也就是向着内存地址减小的方向&#xff1b;对于堆来讲&#xff0c;它的生长方向是向上的&#xff0c;是向着内存地址增加的方向增长.栈区先定义的变量放到栈底&#xf…

官宣!联诚发与康冠科技达成战略合作,全面布局文旅演艺领域!

2023年10月11日&#xff0c;康冠科技&#xff08;股票代码&#xff1a;001308&#xff09;与联诚发LCF签约仪式在联诚发LCF深圳总部顺利举行&#xff0c;双方正式建立战略合作伙伴关系&#xff0c;并将基于自身优势&#xff0c;围绕文旅演艺、XR虚拟拍摄、5G8K、舞台租赁等领域…