C++ opencv高斯模糊
1.高斯模糊
常用的模糊算法有两种,一种是均值(盒子),一种是高斯。
现在我们来介绍一下高斯
模糊
首先我们了解一下什么是模糊
模糊就是对图像进行平滑化处理。
平滑化处理,就是用平滑滤波函数,生成卷积核对应的权重,然后对图像进行卷积操作。
均值模糊可以做到让图片模糊,但是它的模糊不是很平滑。
不平滑主要在于距离中心点很远的点与距离中心点很近的所带的权重值相同,产生的模糊效果一样。
而想要做到平滑,让权重值跟随中心点位置距离不同而不同,则可以利用正态分布(中间大,两端小)来实现。
高斯模糊之所以叫高斯模糊,就是因为它运用了高斯的正态分布的密度函数(概率论知识)。
高斯模糊保留的轮廓信息比较多,所以它的模糊平滑要好于均值模糊
高斯模糊
要想实现高斯模糊的特点,就需要通过构建对应的权重矩阵来进行滤波。
接下来我们开始介绍如何利用正态分布构建对应的权重矩阵。
正态分布中,越接近中心点,取值越大,越远离中心,取值越小。
计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置分配权重,
就可以得到一个加权平均值。正态分布显然是一种可取的权重分配模式。
如何反映出正态分布?那就要用高斯函数来实现。
上面的正态分布是一维的,而对于图像都是二维的,所以我们需要二维的正态分布。
正态分布的密度函数叫做"高斯函数"(Gaussian function)。
它的一维形式是:
其中,μ是x的均值,σ是x的方差。
因为计算平均值的时候,中心点就是原点,所以μ等于0。于是公式进一步简化为:
根据一维高斯函数,可以推导得到二维高斯函数:
有了这个函数 ,就可以计算每个点的权重了。
高斯模糊示例
除以总值这个过程就是问之前课上所讲的归一化,目的是让滤镜的权重总值等于1。
将这9个值加起来,就是中心点的高斯模糊的值。对所有点重复这个过程,就得到了高斯模糊后的图像。
2.高斯模糊演示
API
GaussianBlur使用高斯滤镜模糊图像共6个参数 第1个参数 输入第2个参数 输出第3个参数 高斯卷积核size(必须是整数和奇数,可以是0,然后根据sigma计算他们)第4个参数 x方向的高斯核标准差第5个参数 y方向的高斯核标准差(如果sigmaY = 0,则设置其 = sigmaX)(如果两个标准差都为0,则根据高斯卷积核size计算)(官方文档建议:三个参数最好都指定)虽然size和sigma都可以实现模糊,但sigma的影响更大第6个参数 图像边缘处理方式(超出初学者范围,暂不学习)
示例代码
//函数定义
void gaussian_blur_demo(Mat& image);//函数实现
void QuickDemo::gaussian_blur_demo(Mat& image) {imshow("原图", image);Mat dst;GaussianBlur(image, dst, Size(5, 5), 15);imshow("高斯模糊", dst);}
C++ opencv高斯模糊相关推荐
- opencv 高斯模糊
opencv 高斯模糊 import numpy as np import cv2 from scipy import ndimagek33=np.array([[-1,-1,-1],[-1,8,-1 ...
- OpenCV.高斯模糊
高斯模糊 均值模糊系kernal系数均相等情况下,实际上还存在着在空间上由于相对位置不同而引起kernal中每个系数有不同的权重的模糊,称之为高斯模糊.高斯模糊的每个系数的权重由高斯正态分布而生成,根 ...
- 在 Python 中使用 OpenCV 高斯模糊我这张的丑脸
@Author:Runsen 谁都无法否认,长得好看的人就是更具有吸引力,赏心悦目谁都喜欢.好看的人无论在职场或情场,都一定更占优势. 但是,此「颜值」非彼「颜值」.一说到「颜值」,大部分想到的是脸蛋 ...
- OpenCV角点检测: Harris算子, ShiTomasi算子
角点检测 角点的特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做&quo ...
- OpenCV中的模糊处理(python)
OpenCV中的模糊处理 前言 1.写在模糊理解前 1.1什么是卷积 1.2滤波器 2.模糊方式 2.1均值模糊(滤波) 2.2中值模糊 2.3高斯模糊 总结 前言 接到考核任务. 在学OpenCV模 ...
- 小白学python(opencv模糊)
小白学python(opencv模糊) 模糊 均值模糊 中值模糊 自定义模糊 高斯模糊 双边模糊 今天稍微学学模糊有关知识,发出来记录以一下. 模糊 #像的模糊是图像处理中比较常用和简单的处理手段之一 ...
- autojs某音霓虹特效
牙叔教程 简单易懂 效果展示 缘起 群里有人问某音的霓虹特效怎么做, 并发了图片, 看着还有点意思, 就研究了一下 autojs版本 9.0.4 思路 你将学到以下知识点 初始化opencv open ...
- opencv4算法库学习笔记(5万多字超长干货——纪念奋战的自己)
整理于2020年初三个月的日夜积累... 参考链接 opencv安装 安装脚本链接:https://github.com/milq/milq/blob/master/scripts/bash/inst ...
- 模糊处理(下)--高斯模糊,双边模糊以及实现一个简单的磨皮美颜效果(opencv学习记录--4)
文章目录 1.高斯模糊 1.什么是高斯模糊 2.opencv提供的API 2.双边模糊 1.什么是双边模糊 2.opencv的API 3.磨皮美颜效果的实现 1.实现过程 2.主要代码 3.效果 参考 ...
最新文章
- Python轻松爬取Rosimm写真网站全部图片
- 我在北京大学,剑桥大学读的书
- 未来期间的过帐运行已申请(检查条目)
- 判断两个时间在15分钟内_为什么敷面膜的使用时间要15—20分钟,这个时间怎么算出来的?...
- 梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现
- LeetCode 1105. 填充书架(DP)
- python中哪里用到缩进_建筑防火中各类门的总结归纳!乙级门?甲级门?都哪里用到了!...
- 【PHP】月末・月初の出力方法
- VCL组件之TPanel
- Visual Stdio下安装WTL的向导Widzard
- 人能为赚钱吃多少苦?
- Linux支持运行3dmax,Mesa的Panfrost Gallium3D驱动程序现在可以使用新的DRM驱动程序
- Hbase数据库设计
- mediator模式-调停者模式
- 简洁的圆形时钟数字时钟+指针时钟(1+X Web前端开发初级 例题)
- 数字中国城市巡礼之开封:千年古都的智慧新生
- Point1:STM32根据BRR反推波特率
- 新浪微博小工具--PC遥控器1.0发布
- (转)云计算的三种模式:IaaS、PaaS和SaaS 通俗理解
- 前端基础(十一、JS 输出、变量、基本数据类型)