OpenCV高斯滤波GaussianBlur

图像处理中,常用的滤波算法有均值滤波、中值滤波以及高斯滤波等。

三种滤波器的对比
滤波器种类基本原理特点
均值滤波使用模板内所有像素的平均值代替模板中心像素灰度值易收到噪声的干扰,不能完全消除噪声,只能相对减弱噪声
中值滤波计算模板内所有像素中的中值,并用所计算出来的中值体改模板中心像素的灰度值对噪声不是那么敏感,能够较好的消除椒盐噪声,但是容易导致图像的不连续性
高斯滤波对图像邻域内像素进行平滑时,邻域内不同位置的像素被赋予不同的权值对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征

下面本文主要对高斯滤波展开详细的介绍。

基本原理

数值图像处理中,高斯滤波主要可以使用两种方法实现。一种是离散化窗口滑窗卷积,另一种方法是通过傅里叶变化。最常见的就是滑窗实现,只有当离散化的窗口非常大,用滑窗计算量非常搭的情况下,可能会考虑基于傅里叶变化的实现方法。所以本文将主要介绍滑窗实现的卷积。

离散化窗口划船卷积时主要利用的是高斯核,高斯核的大小为奇数,因为高斯卷积会在其覆盖区域的中心输出结果。常用的高斯模板有如下几种形式:

高斯模板是通过高斯函数计算出来的,公式如下:

以3 × 3的高斯滤波器模板为例,以模板的中心位置为坐标原点进行取样。模板在各个位置的坐标,如下所示(x轴水平向右,y轴竖直向上)。

这样,将各个位置的坐标带入到高斯函数G中,得到的每个值按照位置排列,就得到了模板。

这样输出的模板有两种形式:

① 小数类型:直接计算得到的值,没有经过任何处理。

② 整数类型:将得到的值进行归一化处理,即将坐上叫的值归一化为1,其他每个系数都除以左上角的系数,然后取整。在使用整数模板时,则需要在模板的前面加一个系数,该系数为模板系数之和的倒数。

例如:生成高斯核为3 × 3,σ = 0.8的模板

小数模板:

0.0571180.124760.057118
0.124760.27250.12476
0.0571180.124760.057118

 

整数模板:

12.18421
2.18424.77072.1842
12.18421

                 再经过四舍五入和添加系数得到最终结果:

 从以上描述中我们可以看出,高斯滤波模板中最重要的参数就是高斯分布的标准差σ。它代表着数据的离散程度,如果σ较小,那么生成的模板中心系数越大,而周围的系数越小,这样对图像的平滑效果就不是很明显;相反,σ较大时,则生成的模板的各个系数相差就不是很大,比较类似于均值模板,对图像的平滑效果就比较明显。通过下面的一维高斯分布图也可验证上述观点。

GaussianBlur函数

函数原型:

void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT);

参数详解如下:

src,输入图像,即源图像,填Mat类的对象即可。它可以是单独的任意通道数的图片,但需要注意,图片深度应该为CV_8U,CV_16U, CV_16S, CV_32F 以及 CV_64F之一。

dst,即目标图像,需要和源图片有一样的尺寸和类型。比如可以用Mat::Clone,以源图片为模板,来初始化得到如假包换的目标图。

ksize,高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数(并不能理解)。或者,它们可以是零的,它们都是由sigma计算而来。

sigmaX,表示高斯核函数在X方向的的标准偏差。

sigmaY,表示高斯核函数在Y方向的的标准偏差。若sigmaY为零,就将它设为sigmaX,如果sigmaX和sigmaY都是0,那么就由ksize.width和ksize.height计算出来。

\sigma _x=(\frac{n_x-1}{2})\cdot 0.30+0.80,n_x=ksize.width-1

\sigma _y=(\frac{n_y-1}{2})\cdot 0.30+0.80,n_y=ksize.height-1

应用示例

#include "stdafx.h"
#include <opencv2/opencv.hpp>int main()
{// 创建两个窗口,分别显示输入和输出的图像cv::namedWindow("Example2-5_in", cv::WINDOW_AUTOSIZE);cv::namedWindow("Example2-5_out", cv::WINDOW_AUTOSIZE);// 读取图像,并用输入的窗口显示输入图像cv::Mat img = cv::imread("C:\\Users\\Bello\\Desktop\\test.jpg", -1);cv::imshow("Example2-5_in", img);// 声明输出矩阵cv::Mat out;// 进行平滑操作,可以使用GaussianBlur()、blur()、medianBlur()或bilateralFilter()// 此处共进行了两次模糊操作cv::GaussianBlur(img, out, cv::Size(5, 5), 3, 3);cv::GaussianBlur(out, out, cv::Size(5, 5), 3, 3);// 在输出窗口显示输出图像cv::imshow("Example2-5_out", out);// 等待键盘事件cv::waitKey(0);// 关闭窗口并释放相关联的内存空间cv::destroyAllWindows();return 0;
}

运行结果:

平滑处理前平滑处理后

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(附视频) | AI奠基人、美国AI科学家特伦斯谈深度学习​

来源&#xff1a;笑看国际风云特伦斯 谢诺夫斯基&#xff08;Terrence Sejnowski&#xff09;&#xff1a;世界十大人工智能科学家之一&#xff0c;还是美国仅3位在世的‘四院院士’之一&#xff0c;同时兼任全球人工智能顶级会议NIPS基金会主席。1989年&#xff0c;特伦斯加入…

Chapter 3.GDI/DirectDraw Internal Data Structures

说明&#xff0c;在这里决定跳过第二章&#xff0c;实在是因为里面涉及的内容太理论&#xff0c;对我而言又太艰深 3.1 HANDLES AND OBJECT-ORIRNTED PROGRAMMING In normal object-oriented programming practice,information hiding is achieved by declaring certain member…

OpenCV图像金字塔

图像金字塔是图像多尺度表达的一种&#xff0c;是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低&#xff0c;且来源于同一张原始图的图像集合。其通过梯次向下采样获得&#xff0c;直到达到某个终止条件才停止采…

带你深入理解图灵机--天才所在的时代

来源&#xff1a;人机与认知实验室这几年由于区块链的大热&#xff0c;以太坊独特的solidity语言实现智能合约功能&#xff0c;图灵完备这个词走进大家的视线。没有计算机专业知识的同学其实很难理解这个词的意思&#xff0c;其实计算机专业的同学都没有深入理解图灵机&#xf…

用PyMC3进行贝叶斯统计分析(代码+实例)

问题类型1&#xff1a;参数估计 真实值是否等于X&#xff1f; 给出数据&#xff0c;对于参数&#xff0c;可能的值的概率分布是多少&#xff1f; 例子1&#xff1a;抛硬币问题 硬币扔了n次&#xff0c;正面朝上是h次。 参数问题 想知道 p 的可能性。给定 n 扔的次数和 h …

2015总结及2016计划

2015计划完成情况&#xff1a; 1.网站建起来&#xff08;未完成&#xff09; 2.发布一款游戏&#xff08;cocos2dx或u3d&#xff09;&#xff08;未完成&#xff09; 3.稳定一年工作&#xff08;完成&#xff09; 4.学习C或C&#xff0c;能够使用其中一种进行windows编程&#…

华为: 即将发布5G+VR的颠覆式智能眼镜

来源&#xff1a;VR每日必看6月27日MWC19上海期间&#xff0c;华为手机业务总裁何刚在全球终端峰会发表演讲&#xff0c;提及华为终端在5G时代的全场景战略是“18N”。“1”就是华为手机&#xff0c;“8”则囊括了TV、平板、PC、耳机、车机、手表、眼镜、音响八项终端产品&…

OpenCV的数据类型——基础数据类型

OpenCV有很多数据类型&#xff0c;从组织结构的角度来看&#xff0c;OpenCV的基础类型类型主要分为三类。第一类是直接从C原语中继承的基础数据类型&#xff1b;第二类是辅助对象&#xff1b;第三类是大型数据类型。本文主要介绍OpenCV的基础数据类型。 目录 Point类 Scalar…

Process finished with exit code -1073741819 (0xC0000005)

运行TensorFlow出现如下错误&#xff0c;尝试了很多网上的方法都不行&#xff0c;最后把代码中的中文路径改为英文后就解决了

LeetCode - Partition List

题目&#xff1a; Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the original relative order of the nodes in each of the two partitions. For example, Given 1-…

Cell:重大突破!三位学术大咖,打造全新“DNA显微镜”

来源&#xff1a;中国生物技术网传统上&#xff0c;科学家们使用光、X射线和电子来观察组织和细胞的内部。如今&#xff0c;科学家们能够在整个大脑中追踪线状的神经纤维&#xff0c;甚至可以观察活的小鼠胚胎如何产生原始心脏中的跳动细胞。但是这些显微镜无法看到的是&#x…

OpenCV的数据类型——辅助对象

在上一篇文章中&#xff0c;主要介绍了OpenCV的基础数据类型。接下来在本篇文章中将主要对OpenCV的辅助对象进行介绍。 cv::TermCriteria类 在很多算法中都存在着循环嵌套&#xff0c;只有满足终止条件时才会退出。通常情况下&#xff0c;终止条件的形式要么是达到允许的有限…

概率密度函数某一点的意义

在连续型随机变量的概率密度函数中&#xff0c;某一点的值不等于该点的概率值&#xff0c;就像不能计算汽车在某一点的速度&#xff0c;因为速度是距离除以时间&#xff0c;对某一点来说不存在距离的概念。如果要计算某一点x的概率的话&#xff0c;就要对x取邻域&#xff08;无…

eclipse中monokai插件的安装

eclipse中monokai插件的安装转载于:https://www.cnblogs.com/zhujiabin/p/5099675.html

Science Robotics近日刊登CMU重大突破,无需手术,普通人就能用意念操控机械臂!...

来源&#xff1a;机器人大讲堂导读顶尖学术期刊《科学》旗下的Science Robotics本月19号刊登了脑机接口&#xff08;BCI&#xff09;领域的一项突破成果。美国卡内基梅隆大学的贺斌教授带领其研究团队与明尼苏达大学合作&#xff0c;成功开发出第一款非侵入式的意念控制机械臂&…

使用pymc3可能遇到的问题及解决方法

PyMC3机器学习库&#xff0c;基于heano, NumPy, SciPy, Pandas, 和 Matplotlib。 安装 pip install pymc3&#xff0c;pip命令可以安装pymc3并安装其依赖库 首次运行报错 这可能是缺少某些依赖库导致的&#xff0c;根据报错信息安装即可 运行出现一长串c代码&#xff0c;或…

【采药.】

采药 题目链接 题意 在这规定时间内采摘草药&#xff0c;使得获得的草药总价值最大&#xff08;动态规划&#xff09; 思路 初始化数组并输入动态规划输出 坑点 容易忘记初始化 算法一&#xff1a;动态规划 时间复杂度 O(n * T) 实现步骤 输入动态规划输出 代码 #include…

OpenCV的工具函数

OpenCV3也提供了一些经常用于计算机视觉的实用功能&#xff0c;列举如下: 功能描述cv::alignPtr() Align pointer to given number of bytes 对齐指针到指定字节数 cv::alignSize() Align buffer size to given number of bytes 将缓存区大小与给定的字节数对齐 cv::allocate(…

一文读懂全球自动驾驶传感器市场格局!

来源&#xff1a;智驾未来自动驾驶汽车作为汽车未来的重要发展方向&#xff0c;成为汽车零部件产业链的重要增长点。国内外的汽车零部件供应商积极布局自动驾驶传感器领域&#xff0c;在车载摄像头、毫米波雷达和激光雷达三大核心部件&#xff0c;以及产业链上下游的拓展为零部…

林志玲为何无法拯救都市丽人的遇冷?

6月11日&#xff0c;恰是备受瞩目的内衣股都市丽人的赴港推介会。公司董事长郑耀南携手林志玲在会上宣布。从6月16日起招股募资近18亿港元。26日将在联交所主板挂牌上市。而作为“在中国最了解女人的男人”的郑耀南。出于赴港上市造势须要&#xff0c;这次请来了都市丽人品牌代…