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实现文本去重且不打乱原本顺序
Jan 26 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
TensorFlow实现创建分类器
Feb 06 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
python3 enum模块的应用实例详解
Aug 12 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
Python列表如何更新值
May 27 Python
python使用多线程+socket实现端口扫描
May 28 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Python超详细分步解析随机漫步
Mar 17 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设计模式  Command(命令模式)
2011/06/17 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
js实现弹窗效果
2020/08/09 Javascript
讲解Python中的递归函数
2015/04/27 Python
给Python入门者的一些编程建议
2015/06/15 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python3的pip路径在哪
2020/06/23 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
工程力学硕士生的自我评价范文
2013/11/16 职场文书
顶岗实习接收函
2014/01/09 职场文书
求职信需要的五点内容
2014/02/01 职场文书
市场营销专业求职信
2014/06/17 职场文书
联谊活动总结
2014/08/28 职场文书
家长会主持词开场白
2015/05/29 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android