Python 计算机视觉代码中使用的前概率公式的统计意义? (matplotlib.image.imread)

Statistical meaning of pre-probability formula used in Python computer vision code? (matplotlib.image.imread)

import numpy as np
import matplotlib.image as img;
C = 1.0-np.mean(img.imread('circle.png'),axis=2);
C /= np.sum(C);

图片有 256 X 256 像素。结果数组 C 似乎是一个 256 X 256 数组,其中包含每个像素的概率(颜色、深度,由于我不了解 matplotlib.image.imread 的作用,我不知道概率是多少.

我理解第 4 行代码的意思是概率值(实际数据通过它们的总和归一化,因此它们总和为 1),但是代码第 3 行的公式是什么意思,在和在图像上下文之外,即统计直觉?

最终,我想将上述概率变换应用于真实数据的单个时间序列,所以我想知道公式 1.0-np.mean() 是否仍然适用于我的(非计算机视觉,但分布式)应用程序

图像包含像素。

一幅图像可以有一个颜色通道(灰度)或多个(红-绿-蓝)。

“深度”是描述像素值层次的术语。 8 位是常见的,这意味着每个通道 2^8 = 256 个不同的级别,或 256^3 = 1670 万种不同的颜色。 1 位将是黑色和白色。高级相机和扫描仪可能具有 10、12 或更多位的深度。

我看不到任何涉及概率的地方。

img.imread('circle.png')读图。你会得到一个形状为 (height, width, 3) 的 numpy 数组,因为图像可能是彩色的。第三维(维度 2)表示每个像素的颜色通道。我猜这个例程将图像加载为范围为 0.0 到 1.0 的浮点值。

np.mean(..., axis=2) 对每个像素取所有颜色通道的平均值。它沿轴 2(第三个轴)进行 average/mean 计算,其中包含每个像素的颜色值。该数组的形状将为 (height, width) 并将输入图像表示为灰度。颜色的权重有点问题。通常绿色通道的权重更大(最亮),蓝色通道的权重更小(最暗)。

C = 1.0- ... 反转图片。

np.sum(C)简单的把C的所有灰度像素点相加,就可以得到一个画面整体亮度的度量。

C /= np.sum(C) 除以该亮度度量。你会得到一张标准化亮度的照片。缺少图像大小(宽度*高度)的一个因素,因此这些值将非常小(dim/dark)。

改用它(平均值而不是总和)将强度值平均调整为 0.5(灰色)。

C /= np.mean(C) # now 1.0 on average
C *= 0.5
# or just C *= 0.5 / np.mean(C)