2 GigaPixel Image limit

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

2 GigaPixel Image limit

Cross, David A.
Greetings ImageJ Community,

I have been using ImageJ for several years to analyze large data sets collected with an optical microscope. The issue that I have is that our large data sets consist of large single 8bit images (2.5-3.0 GigaPixel) and currently ImageJ does not support images larger than ~2Gigapixels. The reason for this is of course that ImageJ pixel data is stored in Integer indexed arrays resulting in a max length of 2.147 billion or so.  It would be possible to replace the array storage with a custom data structure allowing for Long indexing but it would require significant modification to the API.  I just wanted to check and see if anyone else has run into this limitation and/or modified the API already?

David
Reply | Threaded
Open this post in threaded view
|

Re: 2 GigaPixel Image limit

Stephan Preibisch
Hi David,

you should have a look at ImgLib which (amongst other things) addresses this problem:
http://fiji.sc/wiki/index.php/Into_ImgLib_-_Generic_Image_Processing_in_Java
http://fiji.sc/wiki/index.php/Imglib

It allows programming independent of how the data is held (e.g. small cells, ideal for your images), which type of data it is (e.g. write an algorithm for all real valued types of data) and its dimensionality. This is achieved by using Iterators/Cursors that access the image data, similarily to how Collections in Java work. You will find some examples/tutorials on the wiki page and some more documents to get an overview.

Nice greetings,
Stephan

On Jan 30, 2012, at 13:29 , Cross, David A. wrote:

> Greetings ImageJ Community,
>
> I have been using ImageJ for several years to analyze large data sets collected with an optical microscope. The issue that I have is that our large data sets consist of large single 8bit images (2.5-3.0 GigaPixel) and currently ImageJ does not support images larger than ~2Gigapixels. The reason for this is of course that ImageJ pixel data is stored in Integer indexed arrays resulting in a max length of 2.147 billion or so.  It would be possible to replace the array storage with a custom data structure allowing for Long indexing but it would require significant modification to the API.  I just wanted to check and see if anyone else has run into this limitation and/or modified the API already?
>
> David
Reply | Threaded
Open this post in threaded view
|

Re: 2 GigaPixel Image limit

ctrueden
Hi David,

It would be possible to replace the array storage with a custom data
> structure allowing for Long indexing but it would require significant
> modification to the API.  I just wanted to check and see if anyone else has
> run into this limitation and/or modified the API already?
>

To add to Stephan's comment: ImageJ2, currently in development (
http://developer.imagej.net/), uses ImgLib as the foundation of its data
model. Eliminating the 2 Gpx limit per plane is one of our major goals.
ImgLib will also allow us to transparently work with images from other
sources besides disk.

Regards,
Curtis


On Mon, Jan 30, 2012 at 12:48 PM, Stephan Preibisch <[hidden email]>wrote:

> Hi David,
>
> you should have a look at ImgLib which (amongst other things) addresses
> this problem:
>
> http://fiji.sc/wiki/index.php/Into_ImgLib_-_Generic_Image_Processing_in_Java
> http://fiji.sc/wiki/index.php/Imglib
>
> It allows programming independent of how the data is held (e.g. small
> cells, ideal for your images), which type of data it is (e.g. write an
> algorithm for all real valued types of data) and its dimensionality. This
> is achieved by using Iterators/Cursors that access the image data,
> similarily to how Collections in Java work. You will find some
> examples/tutorials on the wiki page and some more documents to get an
> overview.
>
> Nice greetings,
> Stephan
>
> On Jan 30, 2012, at 13:29 , Cross, David A. wrote:
>
> > Greetings ImageJ Community,
> >
> > I have been using ImageJ for several years to analyze large data sets
> collected with an optical microscope. The issue that I have is that our
> large data sets consist of large single 8bit images (2.5-3.0 GigaPixel) and
> currently ImageJ does not support images larger than ~2Gigapixels. The
> reason for this is of course that ImageJ pixel data is stored in Integer
> indexed arrays resulting in a max length of 2.147 billion or so.  It would
> be possible to replace the array storage with a custom data structure
> allowing for Long indexing but it would require significant modification to
> the API.  I just wanted to check and see if anyone else has run into this
> limitation and/or modified the API already?
> >
> > David
>