如何使用reshape方法将图像的所有像素放入Python?

How to put all pixels of an image with the method reshape in Python?

我有一个形状为 (271, 300, 3) 的图像,其中包含 0 到 1 之间的值 (image/255) 我想用 reshape 方法将这个图像的所有像素放在另一个变量(像素)中,该怎么做?这是我的一些代码

image = plt.imread('im3.jpg')
im = image/255.0
print(im.shape) #(271, 300, 3)

到这里为止,我一直在尝试这样做:

pixels = im.reshape(im.shape[0]*im.shape[1]*im.shape[2])

但我不认为这是做到这一点的方法。

将其重塑为具有三个值的像素的平面数组(R,G,B)

pixels = im.reshape( im.shape[0]*im.shape[1], im.shape[2] )

它将(271, 300, 3)转换为(81300, 3)


import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

image = plt.imread('im3.jpg')
im = image/255.0
print(im.shape) #(271, 300, 3)

pixels = im.reshape(im.shape[0]*im.shape[1], im.shape[2])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(pixels[:,0], pixels[:,1], pixels[:,2], c=pixels)
plt.show()