从图像获得的NumPy数组中的值是什么意思?

时间:2019-01-11 01:49:00

标签: python arrays numpy image-processing

假设我在img_path有一些图片。代码如下:

from keras.preprocessing import image
import numpy as np

img = image.load_img(img_path, target_size=(150,150))
img_tensor = image.img_to_array(img)

当我打印img_tensor时,我得到以下信息:

array([[[164., 174., 186.],
        [161., 171., 183.],
        [161., 170., 185.],
        ...,
        [198., 214., 240.],
        [200., 216., 242.],
        [200., 216., 242.]],

       [[160., 170., 182.],
        [157., 167., 179.],
        [158., 167., 182.],
        ...,
        [199., 215., 241.],
        [201., 217., 243.],
        [201., 217., 243.]],

       [[161., 171., 183.],
        [159., 169., 181.],
        [160., 169., 184.],
        ...,
        [199., 215., 241.],
        [199., 215., 241.],
        [199., 215., 241.]],

该数组显然继续,最后显示dtype=float32

我知道尺寸为150x150x3。因此,我的猜测是,写成[50., 50., 50.]的方括号中的每个都是红色,绿色和蓝色三个通道上的单个像素。因此R为50(可能的255为红色的最大值)。

然后用双括号将其关闭时,我们已经完成了一行像素。

我的直觉正确吗?

1 个答案:

答案 0 :(得分:0)

是的,您的直觉是绝对正确的。多维数组是图像中所有像素的RGB表示。