OpenCV3.3+Python3.6实现图片高斯模糊


Posted in Python onMay 18, 2021

本文实例为大家分享了OpenCV3.3+Python3.6实现图片高斯模糊的具体代码,供大家参考,具体内容如下

高斯模糊

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

高斯模糊原理: “模糊”,就是将图像中每个像素值进行重置的过程,这个过程采用将每一个像素都设置成周边像素的平均值。 

# 高斯模糊
#     高斯模糊
#     操作
#     cv2.GaussianBlur(image, (135, 135), 0)  #(5, 5)表示高斯矩阵(高斯内核)的长与宽都是5(必须为奇数),标准差取0
 
import cv2
import numpy as np
 
def clamp(pv):  #保证 RGB三色值的数值不超过255
    if pv>255:
        return 255
    if pv<0:
        return 0
    else:
        return pv
 
def gaussian_noise(image):  #给图片加一些噪声,高斯噪声
    h, w, c = image.shape  #获取三个值,高度、宽度、深度
    for row in range(h):  #在宽度、 高度中遍历进行像素点RGB的赋值
        for col in range(w):
            s=np.random.normal(0, 20, 3)  #获取随机数  3个数的数组
            b = image[row, col, 0]  # blue   原来的蓝色值
            g = image[row, col, 1]  # green
            r = image[row, col, 2]  # red
            image[row, col, 0] = clamp(b + s[0])  #加上处理赋值
            image[row, col, 1] = clamp(g + s[1])
            image[row, col, 2] = clamp(r + s[2])
    cv2.imshow("Gauss_noise", image)
 
print("--------Hello Python--------")
src=cv2.imread("lena.jpg")
cv2.imshow("Source Image",src)
t1=cv2.getTickCount()#获取时间值
gaussian_noise(src)
t2=cv2.getTickCount()#获取时间值
time=(t2-t1)/cv2.getTickFrequency()#计算出时间(s)
print("所用时间:%s"%(time*1000))
 
dst = cv2.GaussianBlur(src, (2555,2555), 15)#进行高斯模糊处理
cv2.imshow("Gauss_blur",dst)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

(1)原图:

OpenCV3.3+Python3.6实现图片高斯模糊

(2)高斯噪声图片

OpenCV3.3+Python3.6实现图片高斯模糊

(3)高斯模糊效果

OpenCV3.3+Python3.6实现图片高斯模糊

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之数据类型总结
Sep 24 Python
python通过字典dict判断指定键值是否存在的方法
Mar 21 Python
Python字符串处理函数简明总结
Apr 13 Python
Python操作列表之List.insert()方法的使用
May 20 Python
python字符串,数值计算
Oct 05 Python
Python中单例模式总结
Feb 20 Python
浅谈Python中的私有变量
Feb 28 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python requests库用法实例详解
Aug 14 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
Pycharm Git 设置方法
Sep 15 Python
Python中for后接else的语法使用
python源码剖析之PyObject详解
Python3 如何开启自带http服务
May 18 #Python
安装pytorch时报sslerror错误的解决方案
Pytorch 如何实现LSTM时间序列预测
pytorch实现ResNet结构的实例代码
pytorch常用数据类型所占字节数对照表一览
May 17 #Python
You might like
PHP开发框架总结收藏
2008/04/24 PHP
php xml文件操作实现代码(二)
2009/03/20 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
《陋室铭》教学反思
2014/02/26 职场文书
团代会主持词
2014/04/02 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
《观察物体》教学反思
2016/02/17 职场文书
施工安全协议书
2016/03/22 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android