简介

高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。

由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波器,也就是说,低波通过,高波滤去。对于图像来讲,就是在低频的部分通过,对于高频的地方滤去。对图像的边缘等细节部分进行模糊,这是由高斯模糊的公式的性质决定的。这点,经常在数字图像处理中利用,以在图像仿真图像重打样等领域进行利用。

公式如下。

σ是标准差,在这里又叫做高斯半径。σ2表示的意思就是方差。f(x)是概率,μ是均值,即期望。即这个公式表示的意思在μ附近的概率。离μ越近,即σ越小,其概率越大;离μ越远,即σ越大,其概率越小。σ的取值范围是[0.1~250]。

高斯掩膜

转自链接,对于图像中任意一点(x,y),它周围的坐标为:

中间的(x,y)就是我们公式中的了, 当遍历(x-1,y-1)...(x+1,y+1)时,

(只剩下常数没有x,y是因为在相减的过程中把x,y抵消掉了)

<img src="https://pic2.zhimg.com/v2-b39cae58ca1a5f39c46ac5ba918787f5_b.png" data-rawwidth="349" data-rawheight="147" class="content_image" width="349">

(这里取sigma为1.0)

归一化就得到高!斯!掩!膜!了

<img src="https://pic1.zhimg.com/v2-0d1b6a4c714641309b05a89343425cac_b.png" data-rawwidth="305" data-rawheight="146" class="content_image" width="305">

所以你看,高斯掩膜的求解与位置(x,y)无关,因为在计算过程中x,y被抵消掉了,

因!此!——

高斯掩膜只要求解一次就够了! 当得到了这个模板,对图像的所有像素用这同一套模板去卷积就OK了!

实现

由上可知,高斯掩膜翻转不变,滤波函数功能与卷积一致。
运行结果如下。
# coding:utf8
import cv2
from filter import *
from  scipy.signal.signaltools import convolve2dclass MyGaussianBlur():# 初始化def __init__(self, kernel=3, sigema=1.5):self.kernel = kernel if kernel>=3 else 3self.radius = (kernel-1)/2self.sigema = sigema# 高斯的计算公式def calc(self, x, y):res1 = 1 / (2 * math.pi * self.sigema * self.sigema)res2 = math.exp(-(x * x + y * y) / (2 * self.sigema * self.sigema))return res1 * res2# 得到滤波模版def template(self):sideLength = self.kernelresult = np.zeros((sideLength, sideLength))for i in range(sideLength):for j in range(sideLength):result[i, j] = self.calc(i - self.radius, j - self.radius)all = result.sum()return result / all# 卷积滤波函数def filter_conv(self, image):template = self.template()arr = np.array(image)channel = arr.shape[2]newData = arr.copy()for k in range(channel):newData[:, :, k] = convolve2d(arr[:, :, k], template, mode='same')return newData# 滤波函数def filter(self, image):template = self.template()arr = np.array(image)height = arr.shape[0]width = arr.shape[1]channel = arr.shape[2]newData = arr.copy()for k in range(channel):for i in range(self.radius, height - self.radius):for j in range(self.radius, width - self.radius):t = arr[i - self.radius:i + self.radius + 1, j - self.radius:j + self.radius + 1, k]a = np.multiply(t, template)newData[i, j, k] = int(a.sum())return newDataif __name__ == '__main__':img = cv2.imread('test_data/0010.jpg')sigma=1.0kernel=3cv2.imshow('img0', img)img1 = cv2.GaussianBlur(img, (kernel, kernel), sigma)cv2.imshow('img1', img1)img2 = MyGaussianBlur(kernel=kernel, sigema=sigma).filter(img)cv2.imshow('img2', img2)img3 = MyGaussianBlur(kernel=kernel, sigema=sigma).filter_conv(img)cv2.imshow('img3', img3)cv2.waitKey(0)print MyGaussianBlur(kernel=kernel, sigema=sigma).template()"""[[ 0.07511361  0.1238414   0.07511361][ 0.1238414   0.20417996  0.1238414 ][ 0.07511361  0.1238414   0.07511361]]"""

转载于:https://www.cnblogs.com/qw12/p/9440758.html

图像处理1 高斯模糊相关推荐

  1. 图像处理算法-高斯模糊

    一.高斯模糊简介 通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果. 例如: "模糊"的算法有很多种,其中有一种叫做"高斯模糊& ...

  2. 基于正态分布的图片高斯模糊算法

    前言: 先来看看下面这张图,我把一张图进行了二等份了,左边是经过高斯模糊过的,右边是原图. 图-1 高斯模糊效果对比图 概述: 高斯模糊也叫做高斯平滑,是一种图像平滑处理的技术.高斯模糊算法的原理是选 ...

  3. android 开源 高斯模糊_Android图像处理 - 高斯模糊的原理及实现

    欢迎大家前往由 前言 高斯模糊是图像处理中几乎每个程序员都或多或少听过的名词,但是对其原理大家可能并不了解,只知道通过高斯模糊能实现图像毛玻璃效果. 本文首先介绍图像处理中最基本的概念:卷积:随后介绍 ...

  4. Python3与OpenCV3.3 图像处理(九)--高斯模糊

    一.什么是高斯模糊 把要模糊的像素色值统计,用数学上加权平均的计算方法(高斯函数)得到色值,对范围.半径等进行模糊 二.高斯模糊的应用场景 一些美颜软件.美颜相机上的磨皮和毛玻璃特效基本上都是用的高斯 ...

  5. 图像处理(7)--高斯模糊原理

    文章目录结构 1. 高斯模糊介绍 2. 高斯模糊原理 2.1 矩阵范围的像素平均值 2.2 正态分布的权重 3. 计算高斯模糊 图像处理系列笔记: https://blog.csdn.net/qq_3 ...

  6. Python-OpenCV图像处理(三):高斯噪声与高斯模糊

    高斯噪声 高斯噪声是指高绿密度函数服从高斯分布的一类噪声.特别的,假设一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称这个噪声为高斯白噪声. 高斯模糊 原理:是把要模糊的像素色 ...

  7. 图像处理----图像模糊(高斯模糊)

    python-图像模糊操作:包括均值模糊,中值模糊,高斯模糊和双边滤波.本文主要讲其中的高斯模糊. 图像的高斯模糊时非常经典的图像卷积例子.本质上,图像模糊就是将(灰度)图像I和一个高斯核进行卷积操作 ...

  8. android 7.0 高斯模糊,Android图像处理 – 高斯模糊的原理及实现

    前言 高斯模糊是图像处理中几乎每个程序员都或多或少听过的名词,但是对其原理大家可能并不了解,只知道通过高斯模糊能实现图像毛玻璃效果. 本文首先介绍图像处理中最基本的概念:卷积:随后介绍高斯模糊的核心内 ...

  9. JAVA图像处理——高斯模糊

    JAVA图像处理--高斯模糊 高斯模糊: 高斯模糊简单的说就是让图像的像素点取周围的像素点的平均,达到令图片模糊的效果. 当然,简单的取平均值是不太好的,因为一般与像素点距离近的像素点他们的颜色更接近 ...

  10. 【图像处理】中的“滤镜算法”:灰度、黑白、反向、去色、单色、高斯模糊、怀旧、连环画

    目录 灰度滤镜 黑白滤镜 反向滤镜 去色滤镜 单色滤镜 高斯模糊滤镜 怀旧滤镜 熔铸滤镜 冰冻滤镜 连环画滤镜 褐色滤镜 灰度滤镜 将颜色的RGB设置为相同的值即可使得图片为灰色,一般处理方法有: 1 ...

最新文章

  1. SAP QM 执行事务代码QS23为检验特性分配Selected Set的时候报错 - You cannot use entries from catalogs 1 and 3-
  2. Maltego发布新版本4.2.18
  3. 熊猫分发_熊猫新手:第二部分
  4. Office Web App2013 在线查看PDF文件
  5. 数字图像的5种增强处理
  6. 【杂文】【IDEA】IDEA项目设置为maven并运行
  7. js ajax mysql_Ajax与mysql数据交互实现留言板功能
  8. EF 4.3 Code-Based Migrations
  9. 计算机专业毕设一般写什么,计算机专业毕设主要流程
  10. cox回归模型python实现_Python用Cox比例风险模型进行生存分析-基于lifelines库
  11. python统计数据指标的常见方法
  12. 2020年复旦电子信息专硕复试经验分享
  13. PHP:A mono-alphabetic cipher 单字母密码加解密算法(附完整源码)
  14. java中length和length()方法的区别
  15. Android 微信支付加密
  16. 双非计算机专业考研失败总结
  17. Latex 如何给数学公式进行编号
  18. 2023郑州大学工商管理学硕专业考研成功经验分享
  19. Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
  20. 有限个无穷小的和也是无穷小

热门文章

  1. swagger3 设置值可以为空_swagger3.0使用及https问题处理
  2. IS-IS详解(八)——深入探究IS-IS DIS选举机制
  3. C++ 从入门到入土(English Version) Section 2:Computer Memory and Number Systems
  4. 前后端分离djangorestframework—— 接入支付宝支付平台
  5. Codeforces #123D: 后缀数组+单调栈
  6. HBase + Kerberos 配置示例(一)
  7. ORACLE PL/SQL编程之八: 把触发器说透 |来自cnblogs的EricHu|
  8. 读《操作系统之哲学原理》的一点感想
  9. vs2008 jQuery 智能提示失败可能是Jquery版本问题
  10. 18.MongoDB之balancer