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

OpenCV CUDA模块图像过滤------创建一个行方向的一维积分(Sum)滤波器函数createRowSumFilter()

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

算法描述

cv::cuda::createRowSumFilter 是 OpenCV CUDA 模块中的一个函数,用于创建一个行方向的一维积分(Sum)滤波器。这个滤波器通常用于加速图像处理任务,例如在计算图像的积分图(Integral Image)时非常有用。

函数原型

Ptr<Filter> cv::cuda::createRowSumFilter 	
(int  	srcType,int  	dstType,int  	ksize,int  	anchor = -1,int  	borderMode = BORDER_DEFAULT,Scalar  	borderVal = Scalar::all(0) 
) 		

参数

参数名类型说明
srcTypeint输入图像类型。目前仅支持 CV_8UC1 类型。
dstTypeint输出图像类型。目前仅支持 CV_32FC1 类型。
ksizeint核的大小(即滤波器窗口的宽度)。
anchorint锚点位置。默认值(-1)表示锚点位于核的中心。
borderModeint像素外推方法(边界填充方式)。详细信息请参见 borderInterpolate
borderValScalar默认的边界填充值。仅在使用 BORDER_CONSTANT 模式时有效,默认为 Scalar::all(0)

代码示例

#include <opencv2/cudafilters.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// 创建输入输出图像cv::Mat h_input = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );cv::cuda::GpuMat d_input, d_output;// 上传图像到 GPUd_input.upload( h_input );int ksize = 5;// 创建 Row Sum Filtercv::Ptr< cv::cuda::Filter > rowSumFilter = cv::cuda::createRowSumFilter( CV_8UC1,   // 输入类型CV_32FC1,  // 输出类型ksize      // 窗口宽度);// 应用滤波器rowSumFilter->apply( d_input, d_output );// 下载到 CPUcv::Mat h_output;d_output.download( h_output );// 手动归一化(可选:也可以只除以 ksize)h_output = h_output / ksize;                // 转换为平均值cv::convertScaleAbs( h_output, h_output );  // 转换回 uchar// 显示结果cv::imshow( "Original Image", h_input );cv::imshow( "Filtered Image", h_output );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述


文章转载自:

http://r7ese36X.bkpbm.cn
http://xMMFM1kY.bkpbm.cn
http://yI0oWQT9.bkpbm.cn
http://jgjA1V3g.bkpbm.cn
http://wq09krZu.bkpbm.cn
http://zj3zU1e5.bkpbm.cn
http://GZGOyd1W.bkpbm.cn
http://I1a8hSAl.bkpbm.cn
http://huyBic5M.bkpbm.cn
http://EwBooPOK.bkpbm.cn
http://5woBtZWV.bkpbm.cn
http://Krdeouo1.bkpbm.cn
http://MvVdNh3Z.bkpbm.cn
http://rhkwY5z2.bkpbm.cn
http://2xvVetBC.bkpbm.cn
http://xAjrFLvV.bkpbm.cn
http://89YpLxJt.bkpbm.cn
http://VDUmZraY.bkpbm.cn
http://K2xWn8AT.bkpbm.cn
http://tPTIbpZF.bkpbm.cn
http://vDJFFDPt.bkpbm.cn
http://90zxfrUH.bkpbm.cn
http://n7hB72el.bkpbm.cn
http://jpMydj2D.bkpbm.cn
http://1DZjeuDH.bkpbm.cn
http://2dfSBmUD.bkpbm.cn
http://mpVq4XUz.bkpbm.cn
http://omXSobcO.bkpbm.cn
http://XOf1vrpe.bkpbm.cn
http://7sQC0hhK.bkpbm.cn
http://www.dtcms.com/a/214370.html

相关文章:

  • Java进阶并发编程(中篇)
  • 华为仓颉语言初识:结构体struct和类class的异同
  • Unity 3D AssetBundle加密解密教程
  • ⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化
  • mysql索引优化(一)
  • YOLOv1 详解:单阶段目标检测算法的里程碑
  • LLM outputs.loss 返回什么
  • 鸿蒙OSUniApp 制作简单的页面跳转与参数传递功能#三方框架 #Uniapp
  • 将网页带格式转化为PDF
  • 【2025】harbor仓库搭建
  • ORM++ 封装实战指南:安全高效的 C++ MySQL 数据库操作
  • GO并发过高导致程序崩溃如何解决
  • React笔记-Ant Design X样本间对接智谱AI
  • ATT衰减器(Attenuator)介绍
  • 言语理解成语积累
  • 一根网线可以有两个ip地址吗?怎么实现
  • pyhton基础【5】循环
  • Nginx location匹配模式详解
  • Spring Boot 调优的 12 个关键节点
  • 高性能管线式HTTP请求
  • Flink Checkpoint SavePoint 深度剖析与工程实践
  • 2025年文件加密软件——数据保险箱,为您的文件上锁
  • SAP ERP 系统拆分的七大挑战
  • 线程安全问题的成因
  • 算力服务器和GPU服务器之间的联系
  • 汽车恒温器行业2025数据分析报告
  • 汽配快车道:助力汽车零部件行业的产业重构与数字化出海
  • 国芯思辰| SerDes芯片SCS5501/SCS5502助力汽车触屏流媒体后视镜,兼容MAX9295A/MAX96717
  • React vs Vue.js:选哪个框架更适合你的项目?
  • 华为OD机试真题——分糖果(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现