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

OpenCV CUDA 模块中图像过滤------创建一个拉普拉斯(Laplacian)滤波器函数createLaplacianFilter()

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

算法描述

cv::cuda::createLaplacianFilter 是 OpenCV CUDA 模块中的一个函数,用于创建一个 拉普拉斯(Laplacian)滤波器。该滤波器常用于图像边缘检测。

函数原型

Ptr<Filter> cv::cuda::createLaplacianFilter 	
(int  	srcType,int  	dstType,int  	ksize = 1,double  	scale = 1,int  	borderMode = BORDER_DEFAULT,Scalar  	borderVal = Scalar::all(0) 
) 		

参数

参数名描述
srcType输入图像类型。支持 CV_8U、CV_16U 和 CV_32F 的单通道和四通道图像。
dstType输出图像类型。目前仅支持与输入图像相同的类型。
ksize用于计算二阶导数滤波器的孔径大小(参见 getDerivKernels)。必须为正奇数。目前只支持 ksize = 1 和 ksize = 3。
scale可选的比例因子,用于对计算得到的 Laplacian 值进行缩放。默认情况下不进行缩放(参见 getDerivKernels)。
borderMode像素外推方法。详细信息请参见 borderInterpolate。
borderVal默认的边界值。

代码示例

#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::Mat h_output;// 将图像上传到 GPUcv::cuda::GpuMat d_input, d_output;d_input.upload( h_input );// 创建 Laplacian 滤波器cv::Ptr< cv::cuda::Filter > laplacianFilter = cv::cuda::createLaplacianFilter( d_input.type(), d_input.type(), 3  // 使用 3x3 的核);// 应用滤波器laplacianFilter->apply( d_input, d_output );// 下载结果回 CPUd_output.download( h_output );// 显示或保存结果cv::imshow( "Laplacian Output", h_output );cv::waitKey();return 0;
}

运行结果

在这里插入图片描述

http://www.xdnf.cn/news/605269.html

相关文章:

  • 【python实用小脚本-79】[HR转型]Excel难民到数据工程师|用Python实现CSV秒转JSON(附HRIS系统对接方案)
  • 蓝桥杯国14 互质
  • 取消100+零售商加价!塔吉特Circle 360会员体系重构逻辑
  • Appium+python自动化(三)- SDK Manager
  • Axure高保真CRM客户关系管理系统原型
  • uniapp实现得到本地系统目录文件,获取文件信息
  • 材料星AI对话写作让写作不再孤军奋战
  • 【笔记】JetBrains 数据迁移与符号链接操作
  • Java常用数据结构底层实现原理及应用场景
  • C# 高效读取大文件
  • JVM 性能优化终极指南:全版本兼容、参数公式与场景实战
  • 百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%
  • C# AutoMapper对象映射详解
  • 从细胞工厂到智能制造:Extracellular 用时序数据库 TDengine 打通数据生命线
  • 题目 3330: 蓝桥杯2025年第十六届省赛真题-01 串
  • Spring循环依赖相关问题
  • C++(初阶)(十九)——红黑树
  • LLM多轮对话效果优化之道
  • 每日c/c++题 备战蓝桥杯(修理牛棚 Barn Repair)
  • 【信息系统项目管理师】第19章:配置与变更管理 - 38个经典题目及详解
  • 【Ubuntu】如何在一个脚本文件中跑三个python文件?以及端口被占的解决方法
  • 如何最简单、通俗地理解什么是NLP?
  • el-table控制type=“expand“展开列 根据条件显示或隐藏展开按钮
  • 【萤火工场GD32VW553-IOT开发板】流水灯
  • Git子模块原理与实战详解
  • 【MATLAB代码】扩展卡尔曼滤波估计pmsm的位置误差
  • #6 百日计划第六天 java全栈学习
  • 编译原理 期末速成
  • 从零开始:Python语言进阶之继承
  • window 显示驱动开发-视频内存供应和回收(二)