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基于queue和threading实现多线程下载实例
Oct 08 Python
python字符串中的单双引
Feb 16 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
Django实现auth模块下的登录注册与注销功能
Oct 10 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
python 遍历pd.Series的index和value
Nov 26 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
Python如何实现爬取B站视频
May 20 Python
Python的logging模块基本用法
Dec 24 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 Python
聊聊Python String型列表求最值的问题
Jan 18 Python
Python中for后接else的语法使用
python源码剖析之PyObject详解
Python3 如何开启自带http服务
May 18 #Python
安装pytorch时报sslerror错误的解决方案
Pytorch 如何实现LSTM时间序列预测
pytorch实现ResNet结构的实例代码
pytorch常用数据类型所占字节数对照表一览
May 17 #Python
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
php计算当前程序执行时间示例
2014/04/24 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
js右键菜单效果代码
2007/07/21 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python中多线程及程序锁浅析
2015/01/21 Python
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
python实现下载文件的三种方法
2017/02/09 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
致跳远运动员广播稿
2014/02/11 职场文书
学生会任命书范本
2015/09/21 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python