2017-04-24 158 views
0

我正在嘗試將一堆圖像像素數據加載到numpy數組中,但是遇到了解決如何填充dtype字段的問題。將圖像加載到numpy數組中

我的圖片128×128與型UINT8尺寸×3和裝載如下:

import glob 
from scipy import misc 
images = np.fromiter((misc.imread(path) for path in glob.glob('images/*.png')), <dtype_field>) 

misc.imread負載的每一個圖像作爲numpy的陣列,但我面臨的課題是轉動的此列表將自己圖像成一個numpy數組。

試過以下,以及,但不工作:

images = [misc.imread(path) for path in glob.glob('extra_signs/*.png')] 
images = np.asarray(images) 

從哪裏獲得以下錯誤:

ValueError: could not broadcast input array from shape (128,128,3) into shape (128,128)

設置到D型投np.uint8以下錯誤:

ValueError: setting an array element with a sequence.

說明:我看了在附近的計算器中,我發現如何將圖像讀入numpy數組,但沒有將所有圖像讀入單個數組。

+1

它看起來像你的一個圖像不是128x128x3。你確定文件中沒有128x128形狀的單色圖像嗎? –

+0

@WarrenWeckesser「單色圖像」是「灰度」圖像的一個奇特詞彙嗎? – kmario23

+0

@WarrenWeckesser你幾乎是對的。原來我有一個4通道深度的圖像。不知道那裏出了什麼問題,但是我用另一個正常深度爲3的工具替換了它,並且工作正常。謝謝沃倫! –

回答

2

檢查您正在閱讀的所有圖像的大小。顯然至少有一個不是128x128x3。