千家信息网

Python怎么生成随机高斯模糊图片

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍了Python怎么生成随机高斯模糊图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么生成随机高斯模糊图片文章都会有所收获,下面我们一起来看
千家信息网最后更新 2024年11月27日Python怎么生成随机高斯模糊图片

这篇文章主要介绍了Python怎么生成随机高斯模糊图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么生成随机高斯模糊图片文章都会有所收获,下面我们一起来看看吧。

高斯模糊的介绍与原理

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

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

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

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

python生成高斯模糊

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

pip install python-opencv

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

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

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

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

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

import cv2import randomimgName = "img.png"min_size = 11ori_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怎么生成随机高斯模糊图片"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0