python - Numpy 展平 RGB 图像数组

标签 python arrays numpy image-processing

我有 1,000 张 RGB 图像 (64X64),我想将其转换为 (m, n) 数组。

我用这个:

import numpy as np
from skdata.mnist.views import OfficialImageClassification
from matplotlib import pyplot as plt
from PIL import Image                                                            
import glob
import cv2

x_data = np.array( [np.array(cv2.imread(imagePath[i])) for i in range(len(imagePath))] )
print x_data.shape

这给了我:(1000, 64, 64, 3)

现在如果我这样做:

pixels = x_data.flatten()
print pixels.shape

我得到:(12288000,)

但是,我需要一个具有这些维度的数组:(1000, 12288)

我怎样才能做到这一点?

最佳答案

在将 flatten() 应用于展平数组后,应用 numpy 方法 reshape():

  x_data = np.array( [np.array(cv2.imread(imagePath[i])) for i in range(len(imagePath))] )

  pixels = x_data.flatten().reshape(1000, 12288)
  print pixels.shape

关于python - Numpy 展平 RGB 图像数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36967920/

相关文章:

javascript - 如何按照数组中数据出现的顺序对数据进行排序以实现完全匹配?

python - 在 numpy 中使用重复索引时如何指定列 [与 np.add.at() 一起使用]

python - 如何使用像 len[arry]-1) 这样的 python 在文本文件中获取最后一行作为索引?

Python:是在主线程中定义并从主线程或调用线程中的另一个运行中调用的函数

c++ - 是否有在 C/C++ 中复制数组的函数?

python - 如何在有约束的 scipy 中使用最小化函数

python - pandas - 从列中提取大于阈值的值

python - Numpy:如何在数组数组中滚动 1 "row"

Python 分组条形图。计数不起作用

python - 在 Pandas 中创建新列的 np.where() 问题(可能是 NaN 问题?)