假设我得到了一张黑白图像,如何将每个点的颜色强度转换为表示其相对强度的数值?
我在网上查了一下,发现了以下内容:强度= np.asarray(PIL.Image.open('test.jpg'))
数组和数组的区别是什么?此外,阵列强度的形状为'181L,187L,3L‘。图像test.jpg的大小是181x187,那么额外的'3‘代表什么呢?
还有其他更好的方法来提取图像的颜色强度吗?谢谢。
发布于 2015-05-05 21:37:03
打开的图像是彩色图像,而不是黑白图像。形状是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
或类似的东西。
https://stackoverflow.com/questions/30063430
复制相似问题