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

OpenCV CUDA模块图像过滤------用于创建一个最大值盒式滤波器(Max Box Filter)函数createBoxMaxFilter()

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

算法描述

createBoxMaxFilter()函数创建的是一个 最大值滤波器(Maximum Filter),它对图像中每个像素邻域内的像素值取最大值。常用于:

  • 去除暗噪声(dark noise)
  • 提取局部最大值区域
  • 膨胀操作的替代方法之一

与 cv::cuda::createBoxFilter 类似,但它的卷积核不是加权平均,而是取最大值。

函数原型

Ptr<Filter> cv::cuda::createBoxMaxFilter 	
(int  	srcType,Size  	ksize,Point  	anchor = Point(-1, -1),int  	borderMode = BORDER_DEFAULT,Scalar  	borderVal = Scalar::all(0) ) 		

参数

  • srcType 输入/输出图像类型。仅支持 CV_8UC1 和 CV_8UC4。

  • ksize 核大小(卷积核的宽度和高度)。

  • anchor 锚点。默认值 (-1) 表示锚点位于卷积核中心。

  • borderMode 像素外推方法(边界填充方式)。详细信息,请参见 borderInterpolate。

  • borderVal 默认边界值

代码示例

#include <opencv2/cudafilters.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// 读取图像cv::Mat h_img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );  // 确保是单通道图像if ( h_img.empty() ){std::cerr << "Error: Image not found!" << std::endl;return -1;}// 上传图像到 GPUcv::cuda::GpuMat d_src, d_dst;d_src.upload( h_img );// 创建 Max Box Filter(支持 CV_8UC1 或 CV_32FC1)cv::Ptr< cv::cuda::Filter > maxFilter = cv::cuda::createBoxMaxFilter( d_src.type(),         // 输入图像类型cv::Size( 5, 5 ),     // 卷积核大小cv::Point( -1, -1 ),  // 锚点默认为中心cv::BORDER_DEFAULT    // 默认边界处理);// 应用滤波器maxFilter->apply( d_src, d_dst );// 下载结果回 CPUcv::Mat h_dst;d_dst.download( h_dst );// 显示结果cv::imshow( "Original", h_img );cv::imshow( "Max Filtered", h_dst );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

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

相关文章:

  • 【web全栈】若依框架B站学习视频:基础篇01-04
  • 【Linux我做主】探秘进程与fork
  • docker-compose使用详解
  • 在 Docusaurus 博客中显示文章阅读次数
  • ABAP BADI: ME_PROCESS_PO_CUST~PROCESS_ITEM 报错消息异常处理
  • 信息系统项目管理师考前练习1
  • IOMMU简介
  • 人脸识别备案介绍
  • 权限控制相关实现
  • java小结(一)
  • mybatisplus的分页查询插件
  • 差分探头在DCDC变换器波形测试中的应用
  • 【vue-text-highlight】在vue2的使用教程
  • Java操作数据库,JDBC
  • 白光干涉仪AM系列:量化管控纳米级粗糙度,位移传感器关键零件寿命提升50%
  • Redis的批量查询--录入操作
  • 平衡二叉树的判定:回溯法的深度解析与迭代法拓展
  • PCIe EP控制器(TLP发送仲裁)
  • Qwen 3技术报告详细解读
  • linux中cpu内存浮动占用,C++文件占用cpu内存、定时任务不运行报错(root) PAM ERROR (Permission denied)
  • 【时时三省】(C语言基础)调用函数
  • clock的时钟频率check代码
  • vue之混入mixin
  • 禾纳EAT3152AP MOS电源芯片PIN TO PIN替代泰德TDM3307/2307方案
  • DDoS防护实战——从基础配置到高防IP部署
  • 86.评论日记
  • 二进制编码、定点数与浮点数
  • 【版本控制】Perforce P4服务器安全配置指南(附常见漏洞、详细配置参数)
  • IEEE Transactions on Wireless Communications 2025年1月-5月论文速览
  • 深入理解 Python 的with语法:资源管理的优雅解决方案