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

OpenCV CUDA 模块图像过滤------创建一个线性滤波器(Linear Filter)函数createLinearFilter()

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

算法描述

该函数用于创建一个线性滤波器(Linear Filter),可以对图像执行任意用户定义的卷积核(kernel)操作。适用于模糊、锐化、边缘检测等图像处理任务。

由于是 CUDA 版本,该函数在 GPU 上运行,适合大规模图像处理应用,具有较高的性能。

函数原型

Ptr<Filter> cv::cuda::createLinearFilter 	
(int  	srcType,int  	dstType,InputArray  	kernel,Point  	anchor = Point(-1, -1),int  	borderMode = BORDER_DEFAULT,Scalar  	borderVal = Scalar::all(0) 
) 		

参数

参数名描述
srcType输入图像类型。支持 CV_8UCV_16UCV_32F 的单通道和四通道图像。
dstType输出图像类型。目前仅支持与输入图像相同的类型。
kernel滤波器系数的二维数组(即卷积核)。
anchor锚点。默认值 Point(-1, -1) 表示锚点位于卷积核的中心。
borderMode像素外推方法。详细信息请参见 borderInterpolate 函数。
borderVal默认的边界填充值。

代码示例

#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/cudafilters.hpp>int main()
{// 读取图像并上传到 GPUcv::Mat h_input = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );cv::cuda::GpuMat d_input, d_output;d_input.upload( h_input );// 定义一个简单的 3x3 平均模糊核cv::Mat kernel = ( cv::Mat_< float >( 3, 3 ) << 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9 );// 创建线性滤波器cv::Ptr< cv::cuda::Filter > filter = cv::cuda::createLinearFilter( d_input.type(), d_input.type(), kernel );// 应用滤波filter->apply( d_input, d_output );// 下载结果并显示cv::Mat h_output;d_output.download( h_output );cv::imshow( "Filtered Image", h_output );cv::waitKey();return 0;
}

运行结果

在这里插入图片描述

http://www.lryc.cn/news/2384446.html

相关文章:

  • 广告反作弊都有哪些方法
  • Excel 密码忘记了?巧用PassFab for Excel 解密帮您找回数据!
  • Vue.js教学第十二章:Vue Router实战指南(二)
  • 【前端开发】Uniapp日期时间选择器:实现分钟动态步长设置
  • 跑通Multi-Agent-Constrained-Policy-Optimisation
  • Visual Studio已更新为17.14+集成deepseek实现高效编程
  • go 基础语法 【教程 go tour】
  • 养生指南:五维打造健康新方式
  • 网络爬虫学习之httpx的使用
  • 无人机桥梁检测效率问题-高精度3D建模及航线规划
  • 想免费使用 AWS 云服务器?注册、验证及开通全攻略
  • 以太联 - Intellinet 闪耀台北 SecuTech 国际安全科技应用博览会
  • Pandas:数据分析中的缺失值检测、加载、设置、可视化与处理
  • 【Linux系列】EVS 与 VBD 的对比
  • 56 在standby待机打通uart调试的方法
  • OceanBase 共享存储:云原生数据库的存储
  • 安卓新建项目时,Gradle下载慢下载如何用国内的镜像
  • 讯联文库开发日志(五)登录拦截校验
  • PCB设计教程【入门篇】——电路分析基础-读懂原理图
  • C语言数据结构
  • 湖北理元理律师事务所债务优化方案:让还款与生活平衡成为可能
  • Java对象内存分配优化教学
  • 精度再升级,可到微米!单位自动换算平米和米
  • 【学习笔记】Sophus (Python) 使用文档
  • 常见算法题目2 - 给定一个字符串,找出其中最长的不重复子串
  • 如何配置jmeter做分布式压测
  • Django 中的 ORM 基础语法
  • C#对象初始化语句:优雅创建对象的黑科技
  • 【计算机网络】TCP如何保障传输可靠性_笔记
  • Robust Kernel Estimation with Outliers Handling for Image Deblurring论文阅读