2016-08-11 226 views
0

我有一個大小爲〜2GB的tif文件。我想將其轉換爲一個numpy數組進行進一步處理。 我試圖用PIL.Image.open(「FileName」)打開圖像,然後將其添加到numpy數組。但我得到的錯誤:如何使用Python將超大圖像(tif)文件轉換爲數組

IO錯誤:無法識別圖像文件

的文件格式是正確的,也是準確指定的位置。你能提供一些關於它爲什麼會發生的信息嗎?你認爲它與文件大小有關嗎?

+0

你能否提供實際的代碼,或許是一個指向源文件的指針?除非我們能夠重現錯誤,否則很難診斷。 – Prune

回答

1

vips對大文件的良好支持,以及convenient high-level Python binding,你可以試試。

可以加載圖像記憶是這樣的:

$ python 
Python 2.7.12 (default, Jul 1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import gi 
>>> gi.require_version('Vips', '8.0') 
>>> from gi.repository import Vips 
>>> im = Vips.Image.new_from_file("summer8x3.tif") 
>>> im.width 
18008 
>>> im.height 
22764 
>>> y = im.write_to_memory() 
>>> type(y) 
<type 'str'> 
>>> len(y) 
1229802336 

,然後再到以通常的方式是一個字符串數組numpy的。

您計劃進行哪種進一步處理?你可以用vips做你需要的。它會更快。

+0

感謝您的信息:)這有助於! – webapp