当前位置: 首页 > news >正文

OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::cuda::equalizeHist 用于增强图像的对比度,通过将图像的灰度直方图重新分布,使得图像整体对比度更加明显。
这在医学图像、夜视图像、低对比度图像中特别有用。

函数原型

void cv::cuda::equalizeHist
(InputArray  	src,OutputArray  	dst,Stream &  	stream = Stream::Null() 
) 	

参数

  • src 源图像,类型为 CV_8UC1(即单通道、8位无符号整型图像)。
  • dst 目标图像,与源图像具有相同的尺寸和类型。
  • stream 用于异步执行的流(Stream),可实现与主机的异步操作。

代码示例

#include <iostream>
#include <opencv2/cudaimgproc.hpp>  // 包含 equalizeHist 函数
#include <opencv2/opencv.hpp>int main()
{// 读取灰度图像cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );if ( img.empty() ){std::cerr << "无法加载图像" << std::endl;return -1;}// 将图像上传到 GPUcv::cuda::GpuMat d_img, d_result;d_img.upload( img );// 在 GPU 上执行直方图均衡化cv::cuda::equalizeHist( d_img, d_result );// 下载结果到 CPUcv::Mat result;d_result.download( result );// 显示原始图像和处理后的图像cv::imshow( "Original Image", img );cv::imshow( "Equalized Image", result );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

相关文章:

  • 【Redis】基本命令
  • 油桃TV v20250519 一款电视端应用网站聚合TV播放器 支持安卓4.1
  • 英飞凌SBC芯片TLE9263QX for STM32的库函数与使用
  • git push Git远端意外挂断
  • 基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
  • AI笔记 - 模型调试 - 调试方式
  • 基于ssm的商城系统(全套)
  • 为 MCP Server 提供 Auth 认证,及 Django 实现示例
  • 20250528-C#知识:枚举
  • 学习路之Nginx--不同域名的反向代理
  • MySQL MVCC(多版本并发控制)详解
  • 力扣热题100之二叉树的中序遍历
  • 力扣HOT100之回溯:51. N 皇后
  • 学习python day10
  • 【白雪讲堂】多模态技术:统一认知的优化器
  • [CISCN 2021初赛]glass
  • OpenLayers 加载网格信息
  • Redis 5 种基础数据结构?
  • LiveNVR 直播流拉转:Onvif/RTSP/RTMP/FLV/HLS 支持海康宇视天地 SDK 接入-视频广场页面集成与视频播放说明
  • 《清晰思考》
  • 宁波网站开发定制/策划推广活动方案
  • 长春火车站停车场24小时收费标准/简单网页制作模板
  • 域名注册以后怎样做网站/怎么在百度上面打广告
  • 昆明网站建设制作/百度推广服务
  • 网站中信息更新怎么做的/百度网站是什么
  • 怎么可以找到做公益的网站/宁波seo快速优化课程