首页 > 解决方案 > 从图像中获取的 NumPy 数组中的值是什么意思?

问题描述

假设我有一些图像位于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 是红色的最大值)。

然后当它以双括号结束时,我们已经完成了一行像素。

我的直觉正确吗?

标签: pythonarraysnumpyimage-processing

解决方案


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


推荐阅读