我想讀取和平鋪一個jp2圖像文件。圖像是RGB 98176 x 80656像素(它是醫學圖像數據)。Python打開jp2醫學圖像 - Scipy,glymur
當試圖讀取glymur像我得到這個錯誤:
glymur.lib.openjp2.OpenJPEGLibraryError: OpenJPEG library error: Prevent buffer overflow (x1: 80656, y1: 98176)
我理解的圖片太大。我需要的是通過拼貼讀取圖像數據並將其保存在其他地方並以另一種格式存儲。
Glymur讓我讀使用python的頭,所以例如,碼流是:
>>> print(codestream.segment[1])
SIZ marker segment @ (87, 47)
Profile: no profile
Reference Grid Height, Width: (98176 x 80656)
Vertical, Horizontal Reference Grid Offset: (0 x 0)
Reference Tile Height, Width: (832 x 1136)
Vertical, Horizontal Reference Tile Offset: (0 x 0)
Bitdepth: (8, 8, 8)
Signed: (False, False, False)
Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1))
平鋪不工作,讀方法是行不通的。
編輯:
我也嘗試SciPy的是能夠讀取頭,但同樣的事情,出現的錯誤是:
>>> import scipy.misc
>>> image=scipy.misc.imread('Sl0.jp2')
/home/user/anaconda2/lib/python2.7/site-packages/PIL/Image.py:2274: DecompressionBombWarning: Image size (7717166080 pixels) exceeds limit of 89478485 pixels, could be decompression bomb DOS attack.
DecompressionBombWarning)
>>> scipy.misc.imwrite('/home/user/Documents/imageCfromjp2.tif',image)
/home/user/
AttributeError: 'module' object has no attribute 'imwrite'
>>> scipy.misc.imsave('/home/user/Documents/imageCfromjp2.tif',image)
/home/user/
File "/home/user/anaconda2/lib/python2.7/site-packages/scipy/misc/pilutil.py", line 195, in imsave
im = toimage(arr, channel_axis=2)
File "/home/user/anaconda2/lib/python2.7/site-packages/scipy/misc/pilutil.py", line 287, in toimage
raise ValueError("'arr' does not have a suitable array shape for "
ValueError: 'arr' does not have a suitable array shape for any mode.
>>> image2=image[0:500,0:500]
/home/user/
IndexError: too many indices for array
>>> image2=image[0:500]
/home/user/
ValueError: cannot slice a 0-d array
有什麼辦法將圖像數據流成一個不同類型的容器,以便索引的數量不是問題,並使我能夠處理它?
我嘗試了一些實驗和libvips可悲的是通過MagickCore無法加載在部分圖像,我忘了與PingImage一些問題()使這不可能的。我已將我的答案更改爲指向轉換中的作物加載。 – user894763
嗨。謝謝。我試圖與OpenJPG合作,然後詢問並得到: [INFO]開始閱讀j2k主標題(85)。 [ERROR]防止緩衝器溢出(X1:80656,Y1:98176) [ERROR]標記處理函數無法讀取標記段 ERROR - > opj_decompress:未能讀取頭 當與轉換工作我得到: 轉換:沒有解碼這個圖像格式的代理'JP2'@ error/constitution.c/ReadImage/501。 轉換:沒有圖像定義'sdf.tiff'@ error/convert.c/ConvertImageCommand/3210。 而我不知道如何安裝代表。 –
我最終把它加載到matlab,悲傷。我想找到一個不依賴私人軟件的好開放方式。但我想繼續嘗試。 –