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安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
windows下python连接oracle数据库
Jun 07 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
dataframe设置两个条件取值的实例
Apr 12 Python
Sanic框架安装与简单入门示例
Jul 16 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
Python闭包和装饰器用法实例详解
May 22 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
详解python的内存分配机制
May 10 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数据库操作面向对象的优点
2006/10/09 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
JS动态创建DOM元素的方法
2015/06/09 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
2014最新离职证明范本
2014/09/12 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
病危通知单
2015/04/17 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
全网非常详细的pytest配置文件
2022/07/15 Python