私はjp2イメージファイルを読み込んでタイルを作成しようとしています。画像はRGB 98176×80656ピクセル(医用画像データ)です。私は、画像が大きすぎる理解Python open jp2 medical images - Scipy、glymur
glymur.lib.openjp2.OpenJPEGLibraryError: OpenJPEG library error: Prevent buffer overflow (x1: 80656, y1: 98176)
:glymurで画像を読み取ろうとすると
は、私はこのエラーを取得します。私が必要とするのは、画像データをタイルで読み取って別の場所や別の形式で保存することです。例えば、コードストリームであるよう
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))
タイルのdoesntの作業は、読み出し方法は動作しません。
編集:私はまた、ヘッダが、同じことを読み取ることができる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
内に画像データをストリームする方法はありインデックスの数が問題ではなく、それを処理できるように、別のタイプのコンテナですか?
私はいくつかの実験を試してみましたが、悲しいことにMagickCore経由のセクションで画像を読み込むことができない、私はPingImageといくつかの問題は、()、これは不可能にすることを忘れていlibvips。私は代わりにコンバート時にcrop-on-loadを指すように答えを変更しました。 – user894763
こんにちは。ありがとうございました。私は尋ねる前にOpenJPGで作業しようとした: [情報] j2kメインヘッダ(85)を読むことを開始します。 [ERROR]防止バッファオーバーフロー(X1:80656、Y1:98176) [ERROR]マーカーハンドラ関数はマーカセグメントを ERRORを読み取ることができなかった - > opj_decompress:私が得た変換を使用する場合ヘッダ を読み取ることができませんでした: 変換:このイメージフォーマット 'JP2 '@developeデリゲートは存在しません@ error/components.c/ReadImage/501。 convert:画像は 'sdf.tiff '@ error/convert.c/ConvertImageCommand/3210と定義されていません。 デリゲートのインストール方法はわかりません。 –
私は悲しいことに、それをmatlabにロードし終わった。私は私的なソフトウェアに頼らないでいいオープンな方法を見つけたいと思っていました。しかし、私は努力し続けたい。 –