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

OpenCV的CUDA模块进行图像处理

本文介绍了使用OpenCV和CUDA加速的四种图像处理技术:灰度化、高斯模糊、Sobel边缘检测和直方图均衡化。每种技术都通过将图像数据上传到GPU,利用CUDA进行加速处理,最后将结果下载回CPU。灰度化通过cv::cuda::cvtColor实现,高斯模糊使用cv::cuda::createGaussianFilter创建滤波器,Sobel边缘检测通过cv::cuda::createSobelFilter实现,直方图均衡化则通过cv::cuda::equalizeHist完成。这些方法显著提升了图像处理的效率。

1、图像灰度化

#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp>void convertToGray(const cv::Mat& input, cv::Mat& output) {// 将数据上传到GPUcv::cuda::GpuMat d_input(input);cv::cuda::GpuMat d_output;// 使用CUDA加速的灰度化cv::cuda::cvtColor(d_input, d_output, cv::COLOR_BGR2GRAY);// 将结果下载回CPUd_output.download(output);
}

2. 高斯模糊 (GaussianBlur)

#include <opencv2/cudafilters.hpp>void gaussianBlurGPU(const cv::Mat& input, cv::Mat& output, cv::Size ksize, double sigma) {cv::cuda::GpuMat d_input(input);cv::cuda::GpuMat d_output;// 创建高斯滤波器auto filter = cv::cuda::createGaussianFilter(d_input.type(), d_output.type(), ksize, sigma);// 应用滤波器filter->apply(d_input, d_output);d_output.download(output);
}

 3. Sobel边缘检测

void sobelEdgeDetection(const cv::Mat& input, cv::Mat& output, int dx, int dy, int ksize) {cv::cuda::GpuMat d_input(input);cv::cuda::GpuMat d_output;// 创建Sobel滤波器auto sobel = cv::cuda::createSobelFilter(d_input.type(), d_output.type(), dx, dy, ksize);// 应用滤波器sobel->apply(d_input, d_output);d_output.download(output);
}

 4. 直方图均衡化 (equalizeHist)

#include <opencv2/cudaimgproc.hpp>void histogramEqualizationGPU(const cv::Mat& input, cv::Mat& output) {cv::cuda::GpuMat d_input(input);cv::cuda::GpuMat d_output;// CUDA直方图均衡化cv::cuda::equalizeHist(d_input, d_output);d_output.download(output);
}

 

http://www.xdnf.cn/news/419203.html

相关文章:

  • 文件相关操作
  • 通过QPS和并发数定位问题
  • 网络体系结构(OSI,TCP/IP)
  • 3.4 数字特征
  • 关于网站提交搜索引擎
  • 【Cesium入门教程】第七课:Primitive图元
  • 算法备案部分咨询问题解答第三期
  • leetcode-hot-100 (滑动窗口)
  • Windows部署LatentSync唇形同步(字节跳动北京交通大学联合开源)
  • 【Redis 进阶】缓存
  • 3.3 阶数的作用
  • 基于机器学习的卫星钟差预测方法研究HPSO-BP
  • Java【10_1】用户注册登录(面向过程与面向对象)
  • Spring Boot配置文件
  • Vue2 elementUI 二次封装命令式表单弹框组件
  • InternVL3: 利用AI处理文本、图像、视频、OCR和数据分析
  • docker部署WeDataSphere开源大数据平台
  • 【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
  • 论软件设计模式及其应用
  • EXCEL Python 实现绘制柱状线型组合图和树状图(包含数据透视表)
  • 工程类论文查重困局破解:基于知识图谱的跨学科语义重构技术实证研究
  • java复习笔记-面向对象
  • 速卖通如何低成本测评,让店铺流量与销量双提升
  • MapReduce基本介绍
  • 原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)
  • 内存中的“BANK”
  • 125.在 Vue3 中使用 OpenLayers 实现通过 WebGLVector 的方式添加海量点
  • MapReduce打包运行
  • 基于大模型预测胸椎管狭窄诊疗全流程的研究报告
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的零售结算技术创新研究——以京东AI与香港冯氏零售集团智能结算台为例