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

运行结果

在这里插入图片描述

相关文章:

  • 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请求
  • 网站导航栏制作教程/推广普通话宣传内容
  • 国内医疗美容网站建设/手机上制作网页
  • 宣传网站建设实践报告/北京seo工程师
  • cms建站模板app/windows优化大师有哪些功能
  • 网站logo的颜色与网页的颜色/百度站长app
  • b2c网站后台/腾讯朋友圈广告怎么投放