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

OpenCV CUDA模块图像过滤------创建一个 Scharr 滤波器函数createScharrFilter()

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

算法描述

该函数用于创建一个 Scharr 滤波器(基于 CUDA 加速),用于图像的一阶导数计算。它常用于边缘检测任务中,相比 Sobel 滤波器具有更高的方向精度和更小的误差。

在 GPU 上使用此滤波器可显著提升图像处理速度,特别适合大规模图像或实时视频处理任务。

函数原型

Ptr<Filter> cv::cuda::createScharrFilter 	
(int  	srcType,int  	dstType,int  	dx,int  	dy,double  	scale = 1,int  	rowBorderMode = BORDER_DEFAULT,int  	columnBorderMode = -1 
) 		

参数

参数名类型描述
srcTypeint输入图像类型。例如 CV_8UC1, CV_32FC1 等。
dstTypeint输出图像类型。通常使用浮点类型如 CV_32FC1
dxintx 方向上的导数阶数,取值为 0 或 1。
dyinty 方向上的导数阶数,取值为 0 或 1,且必须满足 dx + dy == 1
scaledouble可选比例因子,默认为 1。用于对滤波结果进行缩放。
rowBorderModeint行方向滤波时使用的边界填充方式。常用如 BORDER_DEFAULTBORDER_REPLICATE 等。
columnBorderModeint列方向滤波时使用的边界填充方式。默认值 -1 表示与 rowBorderMode 相同。

代码示例

#include <opencv2/cudafilters.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.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 );// 创建 Scharr 滤波器(检测 x 方向边缘)auto scharrX = cv::cuda::createScharrFilter( CV_8UC1, CV_32FC1, 1, 0 );// 应用滤波器scharrX->apply( d_input, d_output );// 下载结果并显示cv::Mat h_output;d_output.download( h_output );// 归一化显示cv::convertScaleAbs( h_output, h_output );  // 转换回 uchar 类型cv::imshow( "Scharr X Output", h_output );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

相关文章:

  • 【Linux】基础IO
  • 【Macos】安装前端环境rust+node环境
  • Chrome 开发中的任务调度与线程模型实战指南
  • 华为OD机试真题——新学校选址(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【后端高阶面经:Elasticsearch篇】39、Elasticsearch 查询性能优化:分页、冷热分离与 JVM 调优
  • 如何用Python搭建一个网站
  • Linux笔记---分页存储管理
  • 博图软件块的概述-块的结构详解
  • k-way Hypergraph Partitioning via n-Level Recursive Bisection【2016 ALENEX】文献总结
  • 手机平板等设备租赁行业MDM方案解析
  • Oracle SHARED POOLRESERVED FREE LIST
  • VScode怎么运行一个c语言程序
  • Unity—lua基础语法
  • FFmpeg 4.3 H265 二十二.3,avformat_open_input 支持打开的协议
  • Anaconda 的基础教程,从入门到精通
  • FFMPEG-FLV-MUX编码
  • Flink流处理基础概论
  • springboot 微服务下部署AI服务
  • 微服务(SpringCloud)的简单介绍
  • 华为OD机试真题——传递悄悄话(二叉树最长路径问题)(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 深圳做网站外包公司有哪些/网站alexa排名查询
  • js网站大全/无锡百度正规公司
  • 南京小程序开发网站建设/产品seo标题是什么
  • 中国建设人才网络学院登录入口/沈阳seo整站优化
  • 做个网站做什么呢/百度网盘官网下载
  • 网站设计制作公司推荐/网站查询工具seo