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

OpenCV(二十四):可分离滤波

目录

1.可分离滤波的原理

2.可分离滤波函数sepFilter2D()

3.示例代码


1.可分离滤波的原理

       可分离滤波的原理基于滤波器的可分离性。对于一个二维滤波器,如果它可以表示为水平方向和垂直方向两个一维滤波器的卷积,那么它就是可分离的。也就是说,一个二维滤波器可以通过两次一维卷积来实现,分别在水平和垂直方向进行滤波。

2.可分离滤波函数sepFilter2D()

void cv::sepFilter2D ( InputArray  src,

OutputArray dst,

int   ddepth,

InputArray   kernelX,

InputArray    kernelY,

Point       anchor = point(-1,-1),

double        delta =0 ,

int     borderType = BORDER_DEFAULT

)

  • src:待滤波图像
  • dst:输出图像,与输入图像src具有相同的尺寸、通道数和数据类型
  • ddepth: 输出图像的数据类型(深度)。
  • kernelX:X方向的滤波器
  • kernelY:Y方向的滤波器
  • anchor:内核的基准点(锚点),其默认值为(-1,-1)代表内核基准点位于kernel的中心位置delta: 偏值,在计算结果中加上偏值。
  • borderType:像素外推法选择标志。

3.示例代码

 展示如何使用可分离滤波在图像上应用高斯滤波:

//可分离滤波
void  Separable_filtering(Mat image){// 定义滤波器大小和标准差int ksize = 3;double sigma = 1.0;// 获取水平方向和垂直方向的高斯滤波器cv::Mat kernelX = cv::getGaussianKernel(ksize, sigma);cv::Mat kernelY = cv::getGaussianKernel(ksize, sigma);// 计算水平方向和垂直方向上的一维滤波器cv::Mat kernelXY = kernelX * kernelY.t();// 执行可分离滤波cv::Mat result;cv::sepFilter2D(image, result, -1, kernelX, kernelY);}

在上述示例中,cv::getGaussianKernel()函数用于获取高斯滤波器。ksize参数表示滤波器的大小,sigmaXsigmaY参数表示X和Y方向上的标准差。

通过将一维滤波器应用于图像的两个方向,并使用cv::sepFilter2D()函数将它们结合起来,我们可以实现高效的可分离滤波操作。

http://www.lryc.cn/news/163313.html

相关文章:

  • 【JS进阶】防抖与节流
  • 【css】linear-gradient()的用法
  • java: 读取snakeyaml-1.26.jar各种jar包时出错; error in opening zip file
  • 医疗知识图谱 neo4j
  • 【LeetCode-简单题】367. 有效的完全平方数
  • vben-admin中渲染table表格时怎么处理不同的数据结构
  • 从零开始在树莓派上搭建WordPress博客网站并实现公网访问
  • Go基础18-理解方法的本质以选择正确的receiver类型
  • Go基础12-理解Go语言表达式的求值顺序
  • OJ练习第165题——修车的最少时间
  • 纯前端实现 导入 与 导出 Excel
  • 关于一次两段式提交和数据库恢复数据我的一些想法
  • 阿里巴巴springcloud的gateway网关如何用继承接口WebExceptionHandler定义一个json格式的404错误页面实例
  • 『力扣每日一题07』字符串最后一个单词的长度
  • 成都睿趣科技:抖音开店初期要注意什么
  • QT 5.13保姆级安装教程
  • js 创建DOM,并添加父DOM上,移除某个DOM的所有子节点
  • element el-input 二次封装
  • [源码系列:手写spring] IOC第十三节:Bean作用域,增加prototype的支持
  • 【性能优化】事件委托
  • C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)
  • 建议收藏!Harmony应用配置文件概述(Stage模型)
  • 金蝶云星空和四化智造MES(WEB)单据接口对接
  • Shell命令切换root用户、管理配置文件、检查硬件
  • DataX(MySQL同步数据到Doris)
  • sql server服务无法启动怎么办?如何正常启动?
  • SpringMVC实现文件上传和下载
  • Your build is currently configured to use Java 20.0.2 and Gradle 8.0
  • 栈 之 如何实现一个栈
  • uni-app:自带的消息提示被遮挡的解决办法(自定义消息提示框)