Python使用OpenCV生成随机高斯模糊图片

Mason
Mason
发布时间:2026-10-14| 4人浏览过
原创

本文详解高斯模糊原理,介绍如何使用Python的OpenCV库生成随机高斯模糊图片。通过调整高斯矩阵尺寸和标准差控制模糊程度,并结合random库实现随机化生成,提供完整代码示例与参数说明。

高斯模糊的介绍与原理

常见的图像处理软件通常提供“模糊”滤镜,用于让图片产生视觉上的模糊效果。

实现“模糊”的算法有多种,其中一种被称为“高斯模糊”(Gaussian Blur)。该算法利用正态分布(即高斯分布)来处理图像像素。

所谓“模糊”,在数值上可以理解为每个像素点取其周围邻近像素的平均值。

如上图所示,假设中间点的值为2,周围点的值均为1。

当“中间点”取“周围点”的平均值时,其值变为1。在数值层面,这体现为“平滑化”;在视觉层面,则表现为“模糊”效果,即“中间点”失去了原有的细节特征。

显然,计算平均值时,所取的像素范围(模糊半径)越大,“模糊效果”就越强烈。

上图分别展示了原图、模糊半径为3像素以及模糊半径为10像素的效果。可以看出,模糊半径越大,图像越模糊。从数值角度看,这意味着数值的变化更加平滑。

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

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

Python生成高斯模糊

Python可以使用OpenCV库很方便地生成模糊图像。如果尚未安装OpenCV,可以通过pip进行安装:


pip install python-opencv

若想深入了解高斯模糊的原理,可参考维基百科“高斯模糊”词条。对于一般应用,只需知道该操作可生成模糊图片即可,一行代码即可完成:


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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。