PyTorch – torchvision.transforms – GaussianBlur()


torchvision.transforms 模块提供了许多重要的转换,可用于对图像数据执行不同类型的操作。GaussianBlur() 转换用于使用随机选择的 Gaussian 模糊来模糊图像。

GaussianBlur() 转换接受 PIL 和张量图像或一批张量图像。张量图像是一个形状为 [3, H, W] 的 PyTorch 张量,其中 H 是图像高度,W 是图像宽度。一批张量图像也是一个 torch 张量,形状为 [B, 3, H, W],其中 B 是批次中的图像数量。

语法

torchvision.transforms.GaussianBlur(kernel_size, sigma=(0.1,.2))(img)
  • kernel_size – 高斯核的大小。它必须是两个整数的列表或元组。

  • sigma – 用于创建高斯核的标准差。

  • img – 要模糊的 PIL 图像或张量图像。

它返回一个高斯模糊图像。

步骤

我们可以使用以下步骤使用随机选择的高斯模糊来模糊图像:

  • 导入所需的库。在以下所有示例中,所需的 Python 库为 torch、Pillowtorchvision。确保您已安装它们。

import torch
import torchvision
import torchvision.transforms as T
from PIL import Image
  • 读取输入图像。输入图像是 PIL 图像或 torch 张量。

img = Image.open('spice.jpg')
  • 定义一个转换,以使用随机选择的高斯模糊来模糊输入图像。

transform = T.GaussianBlur(kernel_size=(7, 13), sigma=(0.1, 0.2))
  • 将上面定义的转换应用于输入图像以模糊输入图像。

blurred_img = transform(img)
  • 显示模糊的图像。

blurred_img.show()

输入图像

此图像用作以下所有示例中的输入文件。

示例 1

此示例演示如何使用随机选择的高斯模糊来模糊输入图像。

# import required libraries
import torch
import torchvision.transforms as T
from PIL import Image

# read the input image
img = Image.open('spice.jpg')

# define the transform to blur image
transform = T.GaussianBlur(kernel_size=(7, 13), sigma=(9, 11))

# blur the input image using the above defined transform
img = transform(img)

# display the blurred image
img.show()

输出

它将产生以下输出:

以上输出是原始输入图像的模糊图像。

示例 2

让我们再举一个例子:

import torch
import torchvision.transforms as T
from PIL import Image
import matplotlib.pyplot as plt

# read the input image
img = Image.open('spice.jpg')

# define a transform with kernel size and sigma
transform = T.GaussianBlur(kernel_size=(19, 23), sigma=(20, 25))

# apply the above transform on input image
blurred_imgs = [transform(img) for _ in range(4)]
fig = plt.figure(figsize=(7,4))
rows, cols = 2,2
for j in range(0, len(blurred_imgs)):
   fig.add_subplot(rows, cols, j+1)
   plt.imshow(blurred_imgs[j])
   plt.xticks([])
   plt.yticks([])
plt.show()

输出

它将产生以下输出:

每个输出图像都使用从给定范围内随机选择的高斯模糊进行模糊。

更新于: 2022年1月6日

6K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告