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

OpenCV CUDA 模块图像过滤------创建一个高斯滤波器函数createGaussianFilter()

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

算法描述

cv::cuda::createGaussianFilter 是 OpenCV CUDA 模块中的一个工厂函数,用于创建一个高斯滤波器。这个滤波器可以用来平滑图像,减少噪声,并且在很多计算机视觉任务中作为预处理步骤非常有用。

函数原型

cv::Ptr<cv::cuda::Filter> cv::cuda::createGaussianFilter
(int srcType,int dstType,cv::Size ksize,double sigma1,double sigma2 = 0,int rowBorderMode = cv::BORDER_DEFAULT,int columnBorderMode = -1
);

参数

参数名类型描述
srcTypeint输入图像类型,例如 CV_8UC1, CV_32FC1 等。
dstTypeint输出图像类型,通常与输入类型相同或根据需求指定。
ksizecv::Size高斯核大小(宽度和高度),必须为正奇数。如果设置为 (0, 0),则根据 sigma1 和 sigma2 自动计算。
sigma1doublex方向的标准差。
sigma2doubley方向的标准差。如果设为 0,则与 sigma1 相同。
rowBorderModeint行方向上的边界填充模式,默认为 cv::BORDER_DEFAULT。
columnBorderModeint列方向上的边界填充模式,默认使用 rowBorderMode 的值(即 -1)。

代码示例

#include <opencv2/cudafilters.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// 读取灰度图像cv::Mat h_img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );if ( h_img.empty() ){std::cerr << "Error: Image not found!" << std::endl;return -1;}// 上传到 GPUcv::cuda::GpuMat d_src, d_dst;d_src.upload( h_img );// 创建高斯滤波器(ksize=5x5, sigmaX=1.5)cv::Ptr< cv::cuda::Filter > gaussianFilter = cv::cuda::createGaussianFilter( d_src.type(),      // 输入类型(CV_8UC1)d_src.type(),      // 输出类型与输入相同cv::Size( 5, 5 ),  // 核大小1.5,               // sigmaX1.5                // sigmaY);// 应用高斯滤波器gaussianFilter->apply( d_src, d_dst );// 下载结果回 CPUcv::Mat h_dst;d_dst.download( h_dst );// 显示原始图像及高斯模糊后的图像cv::imshow( "Original", h_img );cv::imshow( "Gaussian Blurred", h_dst );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

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

相关文章:

  • Python中的并发编程
  • Java集合框架与三层架构实战指南:从基础到企业级应用
  • OceanBase 系统表查询与元数据查询完全指南
  • 使用web3工具结合fiscobcos网络部署调用智能合约
  • JAVA:柔性一致性策略 BASE 原则
  • tasklet上下文内存分配触发might_alloc检查及同步回收调用链
  • 【C++】笔试强训 第一天
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(3)
  • 并发编程之线程安全
  • 云原生安全 SaaS :从基础到实践
  • 驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案
  • 101个α因子#23
  • 如何让 Agent 有计划地进行股票数据分析?——基于 DeepSeek 的实战应用
  • linux字符模式关闭光标
  • Linux操作系统:fork+exec进程创建
  • win11远程桌面设置60fps无效
  • 面试题 17.16. 按摩师
  • 软件开发的设计原则
  • 徐少春迎来AI的春天
  • spring中的BeanFactoryAware接口详解
  • 关于我对传统系统机构向大模型架构演进的认知
  • 无线网络优化配置:让你的Wi-Fi更快更稳
  • java: Can‘t generate mapping method with primitive return type
  • 高级SQL技巧:时序数据查询优化与性能调优实战
  • 天文数据处理:基于CUDA的射电望远镜图像实时去噪算法(开源FAST望远镜数据处理代码解析)
  • github cli主要用途,优势,和git的区别
  • PageHelper分页原理解析:从源码到MySQL方言实现
  • 基于开源AI大模型与智能硬件的零售场景服务创新研究——以AI智能名片与S2B2C商城小程序源码融合为例
  • [安全清单] Linux 服务器安全基线:一份可以照着做的加固 Checklist
  • 用Python和Backtrader库实现均值回归策略解析