OpenCV blur和boxFilter (方框型滤波器)
::返回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#ga8c45db9afe636703801b0b2e440fce37blur 和 boxFilter 都是方框型滤波器,简称方波,唯一不同的是,blur是boxFilter的归一化形式。前者是归一化方框型滤波器,后者是非归一化方框型滤波器。
在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. 例程
对比 blur 和 boxFilter 参数设为归一化时的情况,结果是完全相同的。
对比boxFilter 归一化参数设为 true 和 false 的区别,中间为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 (方框型滤波器)相关推荐
- OpenCV入门系列 —— boxFilter盒子滤波
OpenCV入门系列 -- boxFilter盒子滤波 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也同步激增(识 ...
- 【python】OpenCV—Blur, Threshold, Gradient, Morphology(2)
系列文章 [python]OpenCV-RGB, Rectangle, Circle, SS(1) [python]OpenCV-Blur, Threshold, Gradient, Morpholo ...
- python-opencv之图像滤波(blur,boxFilter,GaussianBlur,medianBlur)
1. blur(均值滤波) 均值滤波从频域来看,它是一种低通滤波器,高频信号会被滤掉.均值滤波可以帮助消除图像尖锐噪声,实现图像平滑,模糊等功能.理想的均值滤波是用每个像素和它周围像素计算出来的平均值 ...
- opencv blur函数——均值滤波
本文参考网址: OpenCV成长之路(7):图像滤波 openCV 低通滤波blur函数 opencv-均值滤波blur解析 [OpenCV入门教程之八]线性邻域滤波专场:方框滤波.均值滤波与高斯滤波 ...
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...
- opencv方框内图像保存_opencv 图像滤波(均值,方框,高斯,中值)
为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...
- OpenCV的滤波与卷积
目录 预备知识 滤波.核和卷积 边界外推和边界处理 阈值化操作 Otsu算法 自适应阈值 平滑 简单模糊和方框型滤波器 中值滤波器 高斯滤波器 双边滤波器 导数和梯度 索贝尔导数 Scharr滤波器 ...
- OpenCV中的5种平滑滤波操作
平滑滤波是一种简单又常见的图像处理操作.平滑图像的目的有很多,但通常都是为了减少噪声和伪影. 在OpenCV中共有5种平滑滤波操作,分别是以下几种: 实验测试代码如下: #include<ios ...
- 域滤波:方框、高斯、中值、双边滤波
邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...
最新文章
- 【通知】有三AI项目研发组成员招收条件及可对接业务暂行方案
- 855C Helga Hufflepuff's Cup
- OCA第6部分中的Java难题
- 使用tinylog 1.0简化您的日志记录
- dax 筛选 包含某个字_DAX分享9:DAX中用变量来计算动态filter context中数值
- php判断字符是否在某个数组_php:如何快速在数组array中找出以某字符串开头的值...
- LVM卷管理及配额设置
- python实现嵌套功能_python3 os进行嵌套操作的实例讲解
- 四种方法实现两个等大数组之间内容交换
- Unity Module Manager 模块管理器
- Java实现打印进度条
- 决策树CART介绍*
- 针对英特尔xtu超频软件安装失败以及英伟达GeForce Experience安装程序无法继续的解决方法
- HTML页面转PDF 思路
- 综合函数矩量法原理及实现思路
- 8大预测分析工具比较
- 工业互联网·制药设备远程监控运维维护平台
- 办公自动化基础知识题二
- 2017年的端午节祝福语
- 孤独源于过分的优越感,而优越感的另一面,则是自卑
热门文章
- CentOS通过 liveCD 进入救援模式-重装 grub 修复损坏的
- 1 二进制(glibc版)安装MySQL实现主从复制(亲测)
- 关于java代码中的注释问题。(类中方法的注释,我们一般都要写上这个方法的文档(doc),方法的参数也要有它的文档)
- 【Linux】Ubuntu输入法不能开机自启的解决方法
- CassiniDev源码学习 - 可替代IIS的单机Web Form解决方案
- Python2.7-异常和工具
- Git使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法
- WebSocket 解决javascript跨域问题一剂良药
- 虚拟机中PXE-MOF:Exiting intel PXE ROM.Operating system not found解决方法
- Data truncation: Out of range value for column ‘quanity‘ at row 问题解决方案