OpenCV3.3+Python3.6实现图片高斯模糊

 更新时间:2021年05月18日 15:09:24   作者:Demo.demo  
这篇文章主要为大家详细介绍了OpenCV3.3+Python3.6实现图片高斯模糊,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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)原图:

(2)高斯噪声图片

(3)高斯模糊效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 使用python的turtle函数绘制一个滑稽表情

    使用python的turtle函数绘制一个滑稽表情

    Turtle库是Python语言中一个很流行的绘制图像的函数库,今天通过实例代码给大家分享使用python的turtle函数绘制一个滑稽表情,一起看看吧
    2020-02-02
  • pytorch 实现情感分类问题小结

    pytorch 实现情感分类问题小结

    本文主要介绍了pytorch 实现情感分类问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 利用Pytorch实现简单的线性回归算法

    利用Pytorch实现简单的线性回归算法

    今天小编就为大家分享一篇利用Pytorch实现简单的线性回归算法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python3.7中安装paddleocr及paddlepaddle包的多种方法

    python3.7中安装paddleocr及paddlepaddle包的多种方法

    这篇文章主要介绍了python3.7中安装paddleocr及paddlepaddle包,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 使用python怎样产生10个不同的随机数

    使用python怎样产生10个不同的随机数

    这篇文章主要介绍了使用python实现产生10个不同的随机数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 提高python代码运行效率的一些建议

    提高python代码运行效率的一些建议

    这篇文章主要介绍了提高python代码运行效率的一些建议,帮助大家优化python代码,提高运行效率,感兴趣的朋友可以了解下
    2020-09-09
  • python socket网络编程之粘包问题详解

    python socket网络编程之粘包问题详解

    这篇文章主要介绍了python socket网络编程之粘包问题详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • opencv python简易文档之图像处理算法

    opencv python简易文档之图像处理算法

    OpenCV是一个开源库,包含了许多计算机视觉算法,它在计算机视觉和图像处理中起着重要作用,用于实时操作,其效率足以满足工业上的要求,这篇文章主要给大家介绍了关于opencv python简易文档之图像处理算法的相关资料,需要的朋友可以参考下
    2021-08-08
  • python实现对csv文件的列的内容读取

    python实现对csv文件的列的内容读取

    今天小编就为大家分享一篇python实现对csv文件的列的内容读取,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Linux中Python 环境软件包安装步骤

    Linux中Python 环境软件包安装步骤

    本文给大家分享的是在Linux系统中Python环境的安装步骤,以及常用的软件的安装升级,非常的实用,有需要的小伙伴可以参考下
    2016-03-03

最新评论