OpenCV CUDA 模块图像过滤------创建一个线性滤波器(Linear Filter)函数createLinearFilter()

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

算法描述

该函数用于创建一个线性滤波器(Linear Filter),可以对图像执行任意用户定义的卷积核(kernel)操作。适用于模糊、锐化、边缘检测等图像处理任务。

由于是 CUDA 版本,该函数在 GPU 上运行,适合大规模图像处理应用,具有较高的性能。

函数原型

cpp 复制代码
Ptr<Filter> cv::cuda::createLinearFilter 	
(
 	int  	srcType,
	int  	dstType,
	InputArray  	kernel,
	Point  	anchor = Point(-1, -1),
	int  	borderMode = BORDER_DEFAULT,
	Scalar  	borderVal = Scalar::all(0) 
) 		

参数

参数名 描述
srcType 输入图像类型。支持 CV_8UCV_16UCV_32F 的单通道和四通道图像。
dstType 输出图像类型。目前仅支持与输入图像相同的类型。
kernel 滤波器系数的二维数组(即卷积核)。
anchor 锚点。默认值 Point(-1, -1) 表示锚点位于卷积核的中心。
borderMode 像素外推方法。详细信息请参见 borderInterpolate 函数。
borderVal 默认的边界填充值。

代码示例

cpp 复制代码
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/cudafilters.hpp>

int main()
{
    // 读取图像并上传到 GPU
    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;
    d_input.upload( h_input );

    // 定义一个简单的 3x3 平均模糊核
    cv::Mat kernel = ( cv::Mat_< float >( 3, 3 ) << 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9, 1. / 9 );

    // 创建线性滤波器
    cv::Ptr< cv::cuda::Filter > filter = cv::cuda::createLinearFilter( d_input.type(), d_input.type(), kernel );

    // 应用滤波
    filter->apply( d_input, d_output );

    // 下载结果并显示
    cv::Mat h_output;
    d_output.download( h_output );
    cv::imshow( "Filtered Image", h_output );
    cv::waitKey();
    return 0;
}

运行结果

相关推荐
天云数据5 分钟前
我把小某薯运营做成了一个Agent系统
人工智能
会飞的老朱8 分钟前
活动 | AI重构协同办公 九思软件以技术创新赋能企业高质量发展
人工智能·oa协同办公·智能办公平台
2501_9481142410 分钟前
2026旗舰模型四强争霸:GPT-5.4、Claude Opus 4.6、Gemini 3.1 Pro与Grok 4.20深度横评
人工智能·gpt·ai·谷歌
大模型备案@虎虎11 分钟前
海珠区第四批大模型备案奖励启动:以合规技术激励,夯实 AI 产业安全底座
人工智能·大模型备案·大模型备案奖励政策·大模型备案流程·生成式人工智能服务备案·大模型备案模板·大语言模型备案
IDZSY043011 分钟前
2026 年 AI 社交发展趋势:Agent 社交将成主流
人工智能
慧一居士14 分钟前
AI 领域MaaS平台介绍
人工智能
DolphinDB智臾科技16 分钟前
D-Day 深圳站回顾 | 极智算力·云启新生——AI+全链路量化投资交流会
人工智能
北京耐用通信25 分钟前
耐达讯自动化:用中国芯,解世界题——Modbus与Profinet无缝桥接
人工智能·科技·物联网·自动化·信息与通信
AI医影跨模态组学25 分钟前
Radiology: Imaging Cancer 北京大学人民医院洪楠等团队:基于髋骨参考框架的非增强CT自动骶骨肿瘤分类流程评估
人工智能·深度学习·论文·医学·医学影像
ComputerInBook27 分钟前
OpenCV图像处理——图像缩放函数 resize
图像处理·opencv·计算机视觉