::返回OpenCV算子速查表

彻底搞清楚 blur和boxFilter

  • 1. 函数定义
  • 2. 例程

1. 函数定义

 void blur(InputArray src,OutputArray dst,Size ksize,Point anchor = Point(-1, -1),int borderType = BORDER_DEFAULT);void boxFilter(InputArray src, OutputArray dst, int ddepth,Size ksize,Point anchor = Point(-1, -1),bool normalize = true,int borderType = BORDER_DEFAULT);
  • OpenCV官方文档:
    https://docs.opencv.org/4.x/d4/d86/group__imgproc__filter.html#ga8c45db9afe636703801b0b2e440fce37

  • blurboxFilter 都是方框型滤波器,简称方波,唯一不同的是,blurboxFilter的归一化形式。前者是归一化方框型滤波器,后者是非归一化方框型滤波器。

  • 在OpenCV的官方文档中有这样的说明:The call blur(src, dst, ksize, anchor, borderType) is equivalent to boxFilter(src, dst, src.type(), ksize, anchor, true, borderType). 也就是说当 boxFilter 中参数normalize 被设置为true时,这两个算子是完全相同的。

  • 非归一化方框型滤波器用于计算每个像素邻域的各种积分特征,如图像导数的协方差矩阵(用于密集光流算法,等等)。

  • 输入图像得通道数可以是任意的,因为这些通道会被单独处理,但是图像的深度必须是CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.

  • blur的卷积核如下:

  • boxFilter的卷积核如下:

2. 例程

  • 对比 blurboxFilter 参数设为归一化时的情况,结果是完全相同的。

  • 对比boxFilter 归一化参数设为 truefalse 的区别,中间为true,右边为false.

  • 观察参数Ksize对处理结果的影响,中间的为Size(1, 9),右边的为Size(9, 1),可以看出纵向模糊和横向模糊的区别。不要认为Ksize的大小必须是奇数,它可以是偶数,而且是有效的。

    #include "stdafx.h"
    #include <opencv.hpp>
    using namespace cv;int main()
    {Mat m_SrcImg = imread("./MonaLisa.jpg", IMREAD_COLOR);imshow("原图", m_SrcImg);Mat m_DstImg;//blur(归一化方波)blur(m_SrcImg, m_DstImg,Size(7,7),Point(-1,-1));imshow("blur", m_DstImg);//观察参数Ksize对处理结果的影响blur(m_SrcImg, m_DstImg, Size(1, 9));imshow("blur2", m_DstImg);blur(m_SrcImg, m_DstImg, Size(9, 1));imshow("blur3", m_DstImg);//Ksize可以是偶数blur(m_SrcImg, m_DstImg, Size(9, 2));imshow("blur3", m_DstImg);//boxFilter(归一化参数为true,此时blur等同)boxFilter(m_SrcImg, m_DstImg, m_SrcImg.depth(), Size(3, 3), Point(-1, -1), true);imshow("boxFilter1", m_DstImg);//观察Ksize参数的变化对图像处理结果的影响boxFilter(m_SrcImg, m_DstImg, m_SrcImg.depth(), Size(3, 3),Point(-1,-1),false);imshow("boxFilter2", m_DstImg);waitKey(0);return 0;
    }
    

OpenCV blur和boxFilter (方框型滤波器)相关推荐

  1. OpenCV入门系列 —— boxFilter盒子滤波

    OpenCV入门系列 -- boxFilter盒子滤波 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也同步激增(识 ...

  2. 【python】OpenCV—Blur, Threshold, Gradient, Morphology(2)

    系列文章 [python]OpenCV-RGB, Rectangle, Circle, SS(1) [python]OpenCV-Blur, Threshold, Gradient, Morpholo ...

  3. python-opencv之图像滤波(blur,boxFilter,GaussianBlur,medianBlur)

    1. blur(均值滤波) 均值滤波从频域来看,它是一种低通滤波器,高频信号会被滤掉.均值滤波可以帮助消除图像尖锐噪声,实现图像平滑,模糊等功能.理想的均值滤波是用每个像素和它周围像素计算出来的平均值 ...

  4. opencv blur函数——均值滤波

    本文参考网址: OpenCV成长之路(7):图像滤波 openCV 低通滤波blur函数 opencv-均值滤波blur解析 [OpenCV入门教程之八]线性邻域滤波专场:方框滤波.均值滤波与高斯滤波 ...

  5. 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波

    邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...

  6. opencv方框内图像保存_opencv 图像滤波(均值,方框,高斯,中值)

    为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...

  7. OpenCV的滤波与卷积

    目录 预备知识 滤波.核和卷积 边界外推和边界处理 阈值化操作 Otsu算法 自适应阈值 平滑 简单模糊和方框型滤波器 中值滤波器 高斯滤波器 双边滤波器 导数和梯度 索贝尔导数 Scharr滤波器 ...

  8. OpenCV中的5种平滑滤波操作

    平滑滤波是一种简单又常见的图像处理操作.平滑图像的目的有很多,但通常都是为了减少噪声和伪影. 在OpenCV中共有5种平滑滤波操作,分别是以下几种: 实验测试代码如下: #include<ios ...

  9. 域滤波:方框、高斯、中值、双边滤波

    邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...

最新文章

  1. 【通知】有三AI项目研发组成员招收条件及可对接业务暂行方案
  2. 855C Helga Hufflepuff's Cup
  3. OCA第6部分中的Java难题
  4. 使用tinylog 1.0简化您的日志记录
  5. dax 筛选 包含某个字_DAX分享9:DAX中用变量来计算动态filter context中数值
  6. php判断字符是否在某个数组_php:如何快速在数组array中找出以某字符串开头的值...
  7. LVM卷管理及配额设置
  8. python实现嵌套功能_python3 os进行嵌套操作的实例讲解
  9. 四种方法实现两个等大数组之间内容交换
  10. Unity Module Manager 模块管理器
  11. Java实现打印进度条
  12. 决策树CART介绍*
  13. 针对英特尔xtu超频软件安装失败以及英伟达GeForce Experience安装程序无法继续的解决方法
  14. HTML页面转PDF 思路
  15. 综合函数矩量法原理及实现思路
  16. 8大预测分析工具比较
  17. 工业互联网·制药设备远程监控运维维护平台
  18. 办公自动化基础知识题二
  19. 2017年的端午节祝福语
  20. 孤独源于过分的优越感,而优越感的另一面,则是自卑

热门文章

  1. CentOS通过 liveCD 进入救援模式-重装 grub 修复损坏的
  2. 1 二进制(glibc版)安装MySQL实现主从复制(亲测)
  3. 关于java代码中的注释问题。(类中方法的注释,我们一般都要写上这个方法的文档(doc),方法的参数也要有它的文档)
  4. 【Linux】Ubuntu输入法不能开机自启的解决方法
  5. CassiniDev源码学习 - 可替代IIS的单机Web Form解决方案
  6. Python2.7-异常和工具
  7. Git使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法
  8. WebSocket 解决javascript跨域问题一剂良药
  9. 虚拟机中PXE-MOF:Exiting intel PXE ROM.Operating system not found解决方法
  10. Data truncation: Out of range value for column ‘quanity‘ at row 问题解决方案