我正在尝试读取和平铺一个jp2图像文件。图像为RGB98176 x 80656像素(这是医学图像数据)。在
当试图用glymur读取图像时,我得到以下错误:glymur.lib.openjp2.OpenJPEGLibraryError: OpenJPEG library error: Prevent buffer overflow (x1: 80656, y1: 98176)
我知道这个形象太大了。我需要的是按平铺读取图像数据,并以其他格式保存到其他地方。在
Glymur允许我使用python读取头,因此例如,代码流是:
^{pr2}$
平铺无效,读取方法无效。在
编辑:
我也尝试了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
有没有什么方法可以将图像数据流化到不同类型的容器中,这样索引的数量就不会成为问题,并使我能够处理它?在