在Python中将图像转换为一维数组

时间:2018-08-12 15:50:21

标签: python arrays image multidimensional-array

我想先将图像转换为2D,然后转换为1D数组。我使用重塑来做到这一点。我将具有64x64x3像素的image1.png转换为大小为1x12288的数组。但是,当我尝试复制并显示前100个值时,我得到一个空数组。你能帮我吗?

Test Image(image1)

ApplicationWindow {
    id:root
    visible: true
    width: 480
    height: 640
    title: qsTr("Hello World")

    Component.onCompleted: {
         Qt.callLater(Qt.quit)
    }
}

2 个答案:

答案 0 :(得分:1)

代替

z = y[1:101]

您应该尝试

z = y[0][1:101]

或更改reshape()调用以使其真正成为一维数组

答案 1 :(得分:1)

您不是创建一个1D数组,而是创建一个只有一行的2D数组,然后尝试获得第二到第100行(Python索引基于0)。

from PIL import Image
from scipy.misc import imread
import numpy as np

img1 = imread('image1.png')
y = list(img1.ravel())
z = y[:100]

print(z)