3
我想用PIL顯示一個(512, 512)
numpy的uint16
數值的二維數組。如果我寫了一個函數:用PIL顯示一個numpy數組
def display_PIL(nparray):
image = Image.fromarray(nparray)
image.show()
我得到一個錯誤信息:
不能處理這種數據類型。
但是,如果我補充一下:
def display_PIL(nparray):
image = Image.fromarray(nparray,'L')
image.show()
它顯示的圖像,但我只有圖片的右上四分之一。有沒有解決方案來獲得完整的圖像?我在哪裏可以找到關於L
選項和其他選項的信息?
這是有點偏離主題,但如果你想繪製數組中的值,爲什麼不使用matplotlib?它旨在允許許多繪圖類型,並直接支持numpy數組。 – abought
L''類型是嚴格的8位,所以你應該使用''; 16''來代替。見http://www.pythonware.com/library/pil/handbook/concepts.htm –
Matplotlib是一個非常強大的小數據集顯示工具。在我的情況下,我有超過(100 000,100 000)值的二維數組,其中Matplotlib不是非常強大。理想情況下,我希望有一個工具取決於屏幕分辨率(平均顯示在屏幕上的每個像素上的陣列區域),其中縮放重新計算要顯示的顯示區域。但是這樣的工具顯然不存在。 – user1187727