2017-06-24 21 views
0

好吧,我問了一個類似的問題,它圍繞着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問題:

vrep question

+0

您可以嘗試在調整大小之前和之後打印im數組的維數嗎? –

+0

當然。我用im.shape給我 im = np.array(image,dtype = np.uint8) 後面的尺寸,這些尺寸印在(49152,) 和我之後再次使用im.shape im.resize(128,128,3 ) 哪打印(128,128,3) 我不知道爲什麼最初打印輸出中有一個逗號,然後沒有數字。 – MichaelAndroidNewbie

回答

3

會有助於保持通常的命名約定。
因爲那樣會更明顯pyplot.show()不會將圖像作爲參數。因此,請勿使用pyplot.show(some_image_as_argument),而只需使用pyplot.show()

import matplotlib.pyplot as plt 

image = ... 
im = np.array(image, dtype=np.uint8) 
im.resize(128,128,3) 

plt.imshow(im) 
plt.show() 
+0

道歉,我跟着一個教程,並使用「mlp」的傢伙。所以pyplot.show()將一個numpy數組作爲參數,然後pyplot.show()顯示它?我試過你的代碼,但它仍然不顯示圖像。沒有錯誤消息,代碼仍在運行但未顯示圖像。我應該提到,這段代碼是在while循環內部實現的。 (完整的代碼可以在問題提供的鏈接上查看,但主要是vrep的東西)。 – MichaelAndroidNewbie

+0

你可以嘗試for循環之外的代碼嗎?上面的代碼非常標準,它適用於我從web下載的示例128x128 RGB。 – omdv

+0

原始代碼中沒有顯示圖片的原因(假設您已經刪除了pylab並使用了上面的代碼)仍然很多。如果連接沒有返回任何內容,或者'vrep.simxGetConnectionId(clientID)== - 1'或'error!= vrep.simx_return_ok'都將導致圖像不顯示。你需要自己調試代碼(沒有其他人可以爲你做這件事)並找出哪個命令實際執行。 – ImportanceOfBeingErnest

相關問題