当前位置: 首页 > 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://www.xdnf.cn/news/657451.html

相关文章:

  • 爬虫IP代理效率优化:策略解析与实战案例
  • Neo4j(三) - 使用Java操作Neo4j详解
  • 第12次05: 用户中心-用户基本信息
  • 如何用ChatGPT提升学术长文质量
  • Golang Gin框架基础与实践指南
  • 【学习笔记】GitLab 下载安装与配置
  • 算力服务器的应用场景都有哪些
  • 学习python day8
  • 超临界机组协调控制系统建模项目开发笔记
  • git 删除某个远程库的分支
  • 【Redis】第1节|Redis服务搭建
  • 【freertos-kernel】queue(创建)
  • 企业网络综合实训
  • Zephyr OS: periodic_adv_rsp代码架构和实现
  • GPT-4o 风格提示词案例大全(持续更新 ing...)
  • 小白成长之路-计算机网络(二)
  • 前后端分离项目之新增编辑功能
  • 4800H 低负载黑屏或者蓝屏
  • JS逆向【抖查查】逆向分析 | sign | secret签名验证
  • 亚马逊竞争指数下降20%?这些类目正成新蓝海
  • linux centos 服务器性能排查 vmstat、top等常用指令
  • 算法-二进制运算
  • 将 Docker 镜像从服务器A迁移到服务器B的方法
  • DNS 详情 新增 DNS 自适应服务器 ip
  • AI时代新词-AI驱动的自动化(AI - Driven Automation)
  • 【Sqoop基础】Sqoop定位:关系型数据库与Hadoop生态间的高效数据桥梁
  • Coze教程:10分钟打造你的AI智能管家
  • 使用 `.inl` 文件和 `#pragma once` 解决模板函数头文件膨胀问题指南
  • linux 1.0.2
  • Web字体本地化的一种方案