title: Python open jp2 medical images - Scipy, glymur
body: <p>I am trying to read and tile a jp2 image file. The image is RGB 98176 x 80656 pixels  (it is medical image data). </p>
  
  <p>When trying to read the image with glymur I get this error:</p>
  
  <pre><code>glymur.lib.openjp2.OpenJPEGLibraryError: OpenJPEG library error:  Prevent buffer overflow (x1: 80656, y1: 98176)
  </code></pre>
  
  <p>I understand the image is too big. What I need is to read the image data by tiles and save them elsewhere and in another format.</p>
  
  <p>Glymur allows me to read the header using python, so for instance, the code stream is:</p>
  
  <pre><code>&gt;&gt;&gt; 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))
  </code></pre>
  
  <p>Tiling doesnt work, the read method doesn't work.</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>I tried also Scipy which is able to read the header but the same thing, errors that arise are:</p>
  
  <pre><code>&gt;&gt;&gt; import scipy.misc
  &gt;&gt;&gt; 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)
  &gt;&gt;&gt; scipy.misc.imwrite('/home/user/Documents/imageCfromjp2.tif',image)
  /home/user/
  AttributeError: 'module' object has no attribute 'imwrite'
  &gt;&gt;&gt; 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.
  &gt;&gt;&gt; image2=image[0:500,0:500]
  /home/user/
  IndexError: too many indices for array
  &gt;&gt;&gt; image2=image[0:500]
  /home/user/
  ValueError: cannot slice a 0-d array
  </code></pre>
  
  <p>Is there any way to stream the image data into a different type of container so that the number of indices is not an issue and enables me to process it?</p>