如何在python中提取黑白图像中的相对颜色强度?

时间:2015-05-05 21:21:27

标签: python arrays image image-processing colors

假设我有一个黑色的白色图像,如何将每个点的颜色强度转换为表示其相对强度的数值?

我在网上查了一下,发现了以下内容:     Intensity = np.asarray(PIL.Image.open('test.jpg'))

asarray和阵列有什么区别? 此外,阵列强度的形状为'181L,187L,3L'。图像test.jpg的大小是181x187,那么额外的'3'代表什么呢?

还有其他更好的方法来提取图像的颜色强度吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

图像作为彩色图像打开,而不是黑白图像。形状是181x187x3,因为:3是因为每个像素都是RGB值。通常,黑白图像实际上以RGB格式存储。对于图像image,如果是np.all(image[:,:,0]==image[:,:,1])等,那么您可以选择使用其中任何一个(例如image[:,:,0])。或者,您可以使用np.mean(image,axis=2)取平均值。

另请注意,值的范围取决于格式,因此根据颜色强度的含义,您可能需要对它们进行标准化。在jpeg的情况下,它们可能是uint8s,因此您可能需要image[:,:,0].astype('float')/255或类似的东西。