当前位置: 首页 > 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);
}

 

相关文章:

  • FPGA:XILINX FPGA产品线以及器件选型建议
  • 首个窗口级无人机配送VLN系统!中科院LogisticsVLN:基于MLLM实现精准投递
  • 使用PHP对接日本股票市场数据
  • VTK|类似CloudCompare的比例尺实现1-源码分析
  • 基于几何布朗运动的股价预测模型构建与分析
  • 云手机服务器搭建
  • http断点续传
  • RK3568移植鸿蒙系统openharmony-5.1.0-release
  • 养生:打造健康生活的全方位策略
  • Docker入门教程:常用命令与基础概念
  • Qt —— 在Windows10下通过在线安装方式安装Qt6.9.0(附:“server replied: Forbidden“网络出错解决办法)
  • MERGE INTO 与 INSERT INTO 语法分析及实战对比
  • 对抗帕金森:在疾病阴影下,如何重掌生活主动权?
  • 科学养生:构建现代健康生活新范式
  • (十六)Java String类全面解析
  • 3.3 阶数的作用
  • 网络协议分析 实验二 IP分片与IPv6
  • Go构建高并发权重抽奖系统:从设计到优化全流程指南
  • AI助力:零基础开启编程之旅
  • 采购流程规范化如何实现?日事清流程自动化助力需求、采购、财务高效协作
  • 人民日报任平:从汽车产销、外贸大盘看中国经济前景
  • 英国收紧移民政策,技术工作签证、大学招生面临更严要求
  • 走进“双遗之城”,领略文武风采:沧州何以成文旅新贵
  • 中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动标识发布
  • 甩掉“肥胖刺客”,科学减重指南来了
  • A股三大股指集体高开