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统计文件中去重后uuid个数的方法
Jul 30 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
详解python中executemany和序列的使用方法
Aug 12 Python
python保存数据到本地文件的方法
Jun 23 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
python线程的几种创建方式详解
Aug 29 Python
sklearn的predict_proba使用说明
Jun 28 Python
python3判断IP地址的方法
Mar 04 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
python内置进制转换函数的操作
Jun 02 Python
用python修改excel表某一列内容的操作方法
Jun 11 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生成高清缩略图实例详解
2015/12/07 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
js资料prototype 属性
2007/03/13 Javascript
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python lambda的使用详解
2021/02/26 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
介绍一些UNIX常用简单命令
2014/11/11 面试题
本科生个人求职自荐信
2013/09/26 职场文书
车贷收入证明范本
2014/01/09 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
2016党员入党决心书
2015/09/22 职场文书