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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
Python生成器以及应用实例解析
Feb 08 Python
Python程序运行原理图文解析
Feb 10 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
对python append 与浅拷贝的实例讲解
May 04 Python
numpy中矩阵合并的实例
Jun 15 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
python 统计文件中的字符串数目示例
Dec 24 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
Pandas数据分析的一些常用小技巧
Feb 07 Python
Python&Matlab实现樱花的绘制
Apr 07 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 include类文件超时问题处理
2015/02/06 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
Laravel日志用法详解
2016/10/09 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
python实现指定字符串补全空格的方法
2015/04/30 Python
python清除字符串里非数字字符的方法
2015/07/02 Python
详解Python验证码识别
2016/01/25 Python
python处理csv中的空值方法
2018/06/22 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
使用python实现对元素的长截图功能
2019/11/14 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
金融管理应届生求职信
2014/02/20 职场文书
安全大检查实施方案
2014/02/22 职场文书
精神病医院见习报告
2014/11/03 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
2016党校培训心得体会
2016/01/07 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
Apache POI的基本使用详解
2021/11/07 Servers
linux目录管理方法介绍
2022/06/01 Servers