• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python如何生成随机高斯模糊图片详解

    高斯模糊的介绍与原理

    通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。

    "模糊"的算法有很多种,其中有一种叫做"高斯模糊"(Gaussian Blur)。它将正态分布(又名"高斯分布")用于图像处理。

    所谓"模糊",可以理解成每一个像素都取周边像素的平均值。

    上图中,2是中间点,周边点都是1。

    "中间点"取"周围点"的平均值,就会变成1。在数值上,这是一种"平滑化"。在图形上,就相当于产生"模糊"效果,"中间点"失去细节。

    显然,计算平均值时,取值范围越大,"模糊效果"越强烈。

    上面分别是原图、模糊半径3像素、模糊半径10像素的效果。模糊半径越大,图像就越模糊。从数值角度看,就是数值越平滑。

    接下来的问题就是,既然每个点都要取周边像素的平均值,那么应该如何分配权重呢?

    如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。

    python生成高斯模糊

    Python可以使用opencv库很方便地生成模糊图像,如果没有安装opencv的,可以用pip安装:

    pip install python-opencv

    想了解高斯模糊是什么的话,可以看wiki百科-高斯模糊。对于一般人,只要知道这个操作可以生成模糊图片就好了,一行代码即可搞定:

    import cv2
    img = cv2.GaussianBlur(ori_img, (9, 9), 0)

    这个函数的第一个参数是原图像,第二个参数是高斯矩阵,要注意长和宽都必须为单数,第三个参数是标准差,如果写0,则函数会自行计算。

    那怎么控制模糊程度呢?很简单,高斯矩阵的尺寸越大,标准差越大,处理过的图像模糊程度越大。

    介绍完了简单的高斯模糊操作,我们加一个随机处理,来随机生成模糊程度不同的几张图像,其实也很简单,加一个随机函数来生成高斯矩阵的尺寸就可以了:

    import cv2
    import random
    
    imgName = "img.png"
    min_size = 11
    
    ori_img = cv2.imread(imgName)
    
    for i in range(3):
        addition = random.choice((0, 2, 4, 6, 8, 10, 12))
        size = min_size + addition
        kernel_size = (size, size)
        img = cv2.GaussianBlur(ori_img, kernel_size, 0)
        new_imgName = "New_" + str(i) + "_" + str(kernel_size[0])  + "_" + imgName
        cv2.imwrite(new_imgName, img)
    
    

    这里利用了random库,来在一组数字中随机选择一个数,加到最小尺寸上,作为每次生成的模糊图片的高斯矩阵尺寸,这里我的尺寸最小值设为了11,大家可以根据需要自己尝试看效果来设定。

    总结

    到此这篇关于Python如何生成随机高斯模糊图片的文章就介绍到这了,更多相关python生成高斯模糊内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python 基于opencv实现高斯平滑
    • python绘制高斯曲线
    • Python OpenCV高斯金字塔与拉普拉斯金字塔的实现
    • python实现高斯投影正反算方式
    • Python 实现顺序高斯消元法示例
    • python 多维高斯分布数据生成方式
    • OpenCV半小时掌握基本操作之高斯双边
    上一篇:python 如何获取元素在array中的下标
    下一篇:python实现多进程并发控制Semaphore与互斥锁LOCK
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python如何生成随机高斯模糊图片详解 Python,如何,生成,随机,高斯,