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 16 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
python简单实现刷新智联简历
Mar 30 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
详解Python locals()的陷阱
Mar 26 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
Django实现文件上传下载
Oct 06 Python
Python API len函数操作过程解析
Mar 05 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 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 用sock技术发送邮件的函数
2007/07/21 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
总结对比php中的多种序列化
2016/08/28 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
javascript学习网址备忘
2007/05/29 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
python中lambda与def用法对比实例分析
2015/04/30 Python
python动态性强类型用法实例
2015/05/09 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
大学生毕业自我评价范文分享
2013/11/11 职场文书
警校毕业生自我评价
2014/04/06 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
欢迎领导标语
2014/06/27 职场文书
地震慰问信
2015/02/14 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS