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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
python web框架学习笔记
May 03 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
Python爬虫使用代理IP的实现
Oct 27 Python
python如何判断IP地址合法性
Apr 05 Python
Python 创建TCP服务器的方法
Jul 28 Python
python中使用asyncio实现异步IO实例分析
Feb 26 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 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
vue各种事件监听实例(小结)
2020/06/24 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
浅析使用Python搭建http服务器
2019/10/27 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
python基于win32api实现键盘输入
2020/12/09 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
新大陆软件面试题
2016/11/24 面试题
运动会入场式解说词
2014/02/18 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
会议欢迎词
2015/01/23 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Go语言入门exec的基本使用
2022/05/20 Golang
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技