好吧,我問了一個類似的問題,它圍繞着vrep,但是它有點特殊,實際上一個更簡單的基於python的問題會更有用。但是,如果有人能夠提供有用的信息,我會留下問題。如何將包含圖像數據的1D python列表轉換爲numpy數組並將其顯示出來
這是問題;如何獲取包含圖像數據的1維列表,將其轉換爲numpy數組並將其顯示出來?
這是我到目前爲止有:
im = np.array(image, dtype=np.uint8)
im.resize(128,128,3) #reshape this array into an image form (e.g. rather than 49152)
mlp.imshow(im)
pylab.show(im)
這裏,影像從simxGetVisionSensorImage返回(不是重要的,如果你不知道VREP的東西),是一個列表。然後我嘗試創建一個numpy數組並讀取數據,將其從有符號的8位整數轉換爲無符號的8位整數。然後我調整它(它是一個長度爲49152的列表,對應於128x128的分辨率)並嘗試使用matplotlib或pylab來顯示它。
下面是包括你應該需要他們:
import numpy as np
import matplotlib.pyplot as mlp
import pylab
的matplotlib.show命令甚至不顯示圖像的窗口。在pylab.show命令引發此錯誤:
Traceback (most recent call last):
File "vrep_epuck.py", line 59, in <module>
pylab.show(im)
File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 244, in show
return _show(*args, **kw)
File "/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 165, in __call__
if block:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
這裏是鏈接到你想看到整個代碼或看到VREP東西原來VREP問題:
您可以嘗試在調整大小之前和之後打印im數組的維數嗎? –
當然。我用im.shape給我 im = np.array(image,dtype = np.uint8) 後面的尺寸,這些尺寸印在(49152,) 和我之後再次使用im.shape im.resize(128,128,3 ) 哪打印(128,128,3) 我不知道爲什麼最初打印輸出中有一個逗號,然後沒有數字。 – MichaelAndroidNewbie