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中的字典容器
Apr 14 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 Python
python中正则表达式的使用方法
Feb 25 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
Django 拆分model和view的实现方法
Aug 16 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
Python基础知识学习之类的继承
May 31 Python
python缺失值的解决方法总结
Jun 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
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
vue实现放大镜效果
2020/09/17 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
简单介绍Python中的len()函数的使用
2015/04/07 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
信访工作个人总结
2015/03/03 职场文书
行政诉讼答辩状
2015/05/21 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL