如何使用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()
我有一个形状为 (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()