Python实现毛玻璃图像特效:高斯滤波与随机采样算法解析

小满
小满
发布时间:2026-10-14| 5人浏览过
原创

本文介绍利用Python生成毛玻璃图像特效的方法。核心思路是先对原图进行高斯滤波模糊,再通过邻域随机采样赋予像素值,从而产生带有随机扰动的模糊视觉效果。文中提供了基于scikit-image和OpenCV的两段完整代码示例,演示了具体的参数设置与循环处理逻辑,帮助开发者快速实现类似磨砂玻璃的观察效果。

毛玻璃特效原理与实现思路

本文介绍一种基于高斯滤波和邻域随机采样的图像特效生成方法,旨在实现毛玻璃视觉效果。其基本原理是:首先对原始图像执行高斯滤波以获取模糊背景,随后对该模糊图像进行邻域内的随机采样,将采样得到的像素值赋予当前处理位置的像素点。这种处理方式在模糊的基础上引入了随机扰动,使得最终生成的图像呈现出类似透过毛玻璃观察原图的朦胧质感。

基于scikit-image的实现代码


# -*- coding: utf-8 -*-
"""
Created on Sun Aug 20 11:03:53 2017

@author: shiyi
"""

import matplotlib.pyplot as plt
from skimage.filters import gaussian
from scipy.misc import imsave, imread
import random

file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=imread(file_name)

g_img = gaussian(img, sigma=2, multichannel=True)

img_out = g_img.copy()

rows, cols, dpt = img.shape

p_size = 3

for i in range(p_size, rows-p_size, 1):
    for j in range(p_size, cols-p_size, 1):
        k1= random.random() - 0.5
        k2= random.random() - 0.5
        m=int (k1*(p_size*2-1)) 
        n=int (k2*(p_size*2-1))
        h=(i+m) % rows 
        w=(j+n) % cols  
        img_out[i, j, :] = g_img[h, w, :]

imsave('out.jpg', img_out)

plt.figure
plt.imshow(img_out)
plt.show()

具体处理后的视觉效果如下图所示:

对比原图与处理后图像的展示如下:

基于OpenCV的另一种实现方式

此外,这里补充分享一段此前收藏的毛玻璃效果实现代码,感谢原作者的贡献与分享。

OpenCV毛玻璃效果代码示例


#coding:utf-8
'''
毛玻璃效果
'''
 
import cv2
import numpy as np
 
src = cv2.imread('datas/images/f1.jpg')
dst = np.zeros_like(src)
 
rows,cols,_ = src.shape
offsets = 5
random_num = 0
 
for y in range(rows - offsets):
    for x in range(cols - offsets):
        random_num = np.random.randint(0,offsets)
        dst[y,x] = src[y + random_num,x + random_num]
 
cv2.imshow('src',src)
cv2.imshow('dst',dst)
 
cv2.waitKey()
cv2.destroyAllWindows()

以上内容即为本文的全部介绍,希望这些代码示例能对各位的学习与开发工作有所启发。如果读者觉得内容有用,欢迎继续支持本站获取更多技术资源。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

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 算法库。