PyTorch 中如何计算图像通道的均值?
RGB 图像有三个通道,红色、绿色和蓝色。我们需要计算这些图像通道中像素值的均值。为此,我们使用了方法 torch.mean() 。但是,这种方法的输入参数是 PyTorch 张量。因此,我们首先将图像转换为 PyTorch 张量,然后再应用这个方法。它返回张量中所有元素的平均值。要查找图像通道上的平均值,我们将参数 dim = [1,2] 。
步骤
-
导入所需的库。在以下所有 Python 示例中,所需的 Python 库是 torch,torchvision,Pillow 和 OpenCV 。请确保您已经安装了它们。
-
使用 image.open() 读取输入图像,并将其分配给变量 "img" 。
-
定义一个转换,将 PIL 图像转换为 PyTorch Tensor
-
使用上述定义的转换将图像" img "转换为 PyTorch 张量,并将此张量分配给 "imgTensor" 。
-
计算 torch.mean(imgTensor, dim=[1,2]) 。它返回一个包含三个值的张量。这三个值是 RGB 三个通道的均值。您可以将这三个均值分别分配给三个新变量 "R_mean","G_mean" 和 "B_mean" 。
-
打印图像像素的三个均值 "R_mean","G_mean", 和 "B_mean" 。
输入图像
我们将使用以下图像作为两个示例中的输入。
示例 1
输出
示例 2
我们也可以使用 OpenCV 读取图像。使用 OpenCV 读取的图像的类型是 numpy.ndarray 。在这个示例中,我们使用另一种方式来计算平均值。我们使用 imgTensor.mean() ,它是张量的基本操作。请查看以下示例。