图像合成中如何获得微缩效果的 Python实现
发布时间:2023-03-28 14:19:07 所属栏目:教程 来源:
导读:图像微缩效果原理
应用模糊近似于浅的景深可以合成微缩效果。当图像很大并从短距离观看时,效果更为明显。在本节中,我们将学习如何使用 PIL 库在图像中创建微缩效果。
使用掩码可以选择应重点关注的焦点对象,本节
应用模糊近似于浅的景深可以合成微缩效果。当图像很大并从短距离观看时,效果更为明显。在本节中,我们将学习如何使用 PIL 库在图像中创建微缩效果。
使用掩码可以选择应重点关注的焦点对象,本节
|
图像微缩效果原理 应用模糊近似于浅的景深可以合成微缩效果。当图像很大并从短距离观看时,效果更为明显。在本节中,我们将学习如何使用 PIL 库在图像中创建微缩效果。 使用掩码可以选择应重点关注的焦点对象,本节中我们使用的二值掩码具有在对象交点处为黑色像素,而其他位置为白色像素。将高斯模糊应用到图像上,然后使用掩码从原始图像或模糊图像中选择合适的像素。 为了模拟场景效应的深度,需要在图像中多次应用高斯模糊,然后使用形态学运算腐蚀缩放的掩码来重复高斯模糊过程,这将在模糊后的掩码中产生线性梯度。同时,还需要增强图像的颜色和亮度。 实现图像微缩效果 (1) 首先,导入所有必需的库: from PIL import Image, ImageEnhance, ImageFilter from scipy.ndimage import binary_erosion from PIL.ImageFilter import GaussianBlur import matplotlib.pyplot as plt, numpy as np (2) 使用形态学腐蚀缩放后的掩码图像,然后通过使用给定半径迭代应用高斯模糊 GaussianBlur()。每次重复应用掩码都会对高斯模糊进行扩大,以确保梯度模糊,并增加模糊程度: def apply_gradient_blur(image, mask, n=10, radius=1): mask = mask.convert("1") for i in range(n): mask = binary_erosion(np.array(mask), structure=np.ones((10,10)), border_value=1) im_blur = image.filter(GaussianBlur(radius=radius)) image.paste(im_blur, mask=Image.fromarray(mask)) return image (3) 接下来,根据函数 apply_gradient_blur() 定义函数 create_fake_miniature() 创建合成微缩效果,在函数中,使用 PIL.Imageenhance 模块的 Color() 和 Contrast() 函数增强图像的颜色和对比度,然后使用 apply_gradient_blur() 函数将梯度模糊应用于焦点外部的区域(即对应于掩码中的白色像素);最后,将增强的图像(焦点区域)与模糊图像(焦点外部区域)合并: def create_fake_miniature(im, custom_mask, color=1.9, contrast=1.4, blur_radius=1.3): # 提高对比度和颜色 edited = ImageEnhance.Contrast(ImageEnhance.Color(im).enhance(color)).enhance(contrast) # 模糊图像并合并 im_blur = apply_gradient_blur(edited.copy(), mask.copy(), n=50, radius=blur_radius) edited = edited.convert("RGBA") edited.paste(im_blur, mask=mask) return edited (4) 使用 pil image.open() 函数读取输入图像和掩码图像(焦点区域)作为输入创建合成微缩效果。 im = Image.open("9.png") mask = Image.open("9_binary.png") out = create_fake_miniature(im, mask) plt.figure(figsize=(20,10)) plt.imshow(im), plt.axis('off'), plt.title('Original image', size=10) plt.show() (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
