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,大家可以根据需要自己尝试看效果来设定。
(资源库 www.zyku.net)
原文链接:https://www.jianshu.com/p/c9cd81297fe7/
栏 目:Python教程
下一篇:python scipy.misc.imsave()函数的用法说明
本文标题:Python如何生成随机高斯模糊图片详解
本文地址:https://www.zyku.net/python/9262.html
您可能感兴趣的文章
- 01-12态度定制-态度定制应用软件功能介绍
- 01-14农场种植学习助手-农场种植学习助手应
- 04-02苹果12led闪烁设置方法
- 04-24Radio选项选中触发事件弹出输入框效果
- 09-23网易云音乐更改歌词大小教程介绍
- 07-05Linux groupdel命令
- 12-10帝国CMS 解决远程保存图片生成很多重
- 02-19SiteServer CMS添加及修改内容
- 06-25Access-Control-Allow-Origin解决跨域
- 01-24小米手机关闭微信自启动方法
- 03-31总结Python常用的魔法方法
- 09-17大众点评怎么关闭私信通知
- 01-15宝塔Linux面板PHP环境多版本共存的方
- 01-12窗帘管家-窗帘管家应用软件功能介绍
- 12-08华为p50pro在哪里开启防误触模式
- 11-01荣耀50怎样更换微信铃声
- 03-11帝国CMS虚拟主机伪静态设置.htaccess
- 02-24小米mixfold隐身模式开启方法
- 10-30微信iOS版8.0.16更新了什么
- 01-11云上阅读-云上阅读应用软件功能介绍
最近更新
阅读排行
猜你喜欢
- 04-10荣耀v40轻奢版个人热点设置方法
- 09-18荣耀magic3如何设置勿扰模式
- 03-12使用rsync同步文件的方法
- 08-12fimo相机怎么关闭日期显示?
- 06-26jquery 显示隐藏input输入框
- 04-16php获取当前时间戳的方法
- 01-08君莲书院-君莲书院应用软件功能介绍
- 01-13苹果手机隐藏游戏图标怎么弄
- 08-03vultr服务器生成SSH密钥的方法
- 06-27js获取地址栏参数的两种方法