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)
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)