Как поместить все пиксели изображения методом reshape в Python? - PullRequest
0 голосов
/ 18 января 2020

У меня есть изображение формы (271, 300, 3), содержащее значения от 0 до 1 (image / 255). И я хотел бы поместить все пиксели этого изображения в другую переменную (pixel) с помощью метода 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])

, но я не думаю, что это способ сделать это.

1 Ответ

0 голосов
/ 19 января 2020

Чтобы преобразовать его в плоский массив с пикселями, которые имеют три значения (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() 
...