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实现子类调用父类的方法
Nov 10 Python
Python遍历pandas数据方法总结
Feb 09 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
Feb 13 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
python实现转圈打印矩阵
Mar 02 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 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/07/19 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python操作SQLite简明教程
2014/07/10 Python
python机器学习实战之树回归详解
2017/12/20 Python
python实现图片文件批量重命名
2020/03/23 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
python随机模块random使用方法详解
2020/02/14 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
师范生自荐信
2013/10/27 职场文书
银行委托书范本
2014/04/04 职场文书
团委竞选演讲稿
2014/04/24 职场文书
优秀语文教师事迹
2014/05/18 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
html5表单的required属性使用
2021/07/07 HTML / CSS
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python