sparse images?

View: New views
5 Messages — Rating Filter:   Alert me  

sparse images?

by Darren Weber-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


I'm working with a very large dataset (1000's of 2D images, size > 1024x1024 pixels, ushort RGB pixels).  A large portion of these images is background.

A few routines, like saving all the 2D images into a 3D volume, fail with segfaults due to malloc errors (on OSX 10.5.8 with 24Gb RAM; using ITK 3.16.0).

Is there an image format that provides 'sparse' images?  This implies there are no data values for some of the image pixels (is this the same thing as transparent background?).

What is an optimal image format for working with this data?

Thanks in advance (TIA),
Darren


_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users

Re: sparse images?

by Dan Mueller-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Darren,

You might want to investigate the following Insight Journal submission:
    http://www.insight-journal.org/browse/publication/646

<shameless plug>
Make sure you leave a review!
</shameless plug>

Cheers, Dan

2009/11/4 Darren Weber <darren.weber.lists@...>:

>
> I'm working with a very large dataset (1000's of 2D images, size > 1024x1024
> pixels, ushort RGB pixels).  A large portion of these images is background.
>
> A few routines, like saving all the 2D images into a 3D volume, fail with
> segfaults due to malloc errors (on OSX 10.5.8 with 24Gb RAM; using ITK
> 3.16.0).
>
> Is there an image format that provides 'sparse' images?  This implies there
> are no data values for some of the image pixels (is this the same thing as
> transparent background?).
>
> What is an optimal image format for working with this data?
>
> Thanks in advance (TIA),
> Darren
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users

Re: sparse images?

by Darren Weber-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi Dan,

The proposal is very interesting.  Having read the PDF, I'll take a look at the code.  I may be able to offer a review (time permitting).

Do you have any recent examples of using either the SliceContiguous or the Sparse images to compose a 3D volume from a series of 2D image files?  Do you somehow

a) Allocate the custom image memory (if known size & pixtype)
b) Create an IO object to read data from an image file
c) manually iterate over the IO object data with Get/Set accessors to put data into custom image memory
d) Filter, etc. (if possible)
e) Write out image data to disk (somehow)

I can take the performance hit for the sparse image with Setting values.

Should I be looking into streaming data models?  Essentially all I need to do is stream a set of 2D input data straight out to a 3D output data file.  I'm currently using a series reader (with a regex to define the image series) and piping it straight to a writer (with vtkIO for the writer).  If a streaming model is available for this data transfer, it might avoid the segfaults due to allocation limits (I have plenty of disk space, just not enough RAM).

Thanks!
Darren





On Wed, Nov 4, 2009 at 1:54 PM, Dan Mueller <dan.muel@...> wrote:
Hi Darren,

You might want to investigate the following Insight Journal submission:
   http://www.insight-journal.org/browse/publication/646

<shameless plug>
Make sure you leave a review!
</shameless plug>

Cheers, Dan

2009/11/4 Darren Weber <darren.weber.lists@...>:
>
> I'm working with a very large dataset (1000's of 2D images, size > 1024x1024
> pixels, ushort RGB pixels).  A large portion of these images is background.
>
> A few routines, like saving all the 2D images into a 3D volume, fail with
> segfaults due to malloc errors (on OSX 10.5.8 with 24Gb RAM; using ITK
> 3.16.0).
>
> Is there an image format that provides 'sparse' images?  This implies there
> are no data values for some of the image pixels (is this the same thing as
> transparent background?).
>
> What is an optimal image format for working with this data?
>
> Thanks in advance (TIA),
> Darren
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users

Re: sparse images?

by Dan Mueller-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Darren,

Reading your email again, perhaps I jumped the gun a bit by suggesting
the sparse image. The sparse image is designed for images which have a
few relevant pixels, but the rest background (ie. you don't set all
the pixels, just a few here and there).

If you need to process an entire image, then I think ITK's read/write
streaming feature will better suit your needs (assuming you can break
your processing into chunks).
    http://www.cmake.org/pipermail/insight-users/2002-May/000472.html
    http://www.itk.org/Doxygen/html/StreamingPage.html
    http://www.itk.org/Doxygen/html/group__StreamingGroup.html
    http://www.insight-journal.org/browse/publication/305

Please provide an exact overview of what you are trying to achieve, so
we can help determine the best approach.

Cheers, Dan

2009/11/5 Darren Weber <darren.weber.lists@...>:

>
> Hi Dan,
>
> The proposal is very interesting.  Having read the PDF, I'll take a look at
> the code.  I may be able to offer a review (time permitting).
>
> Do you have any recent examples of using either the SliceContiguous or the
> Sparse images to compose a 3D volume from a series of 2D image files?  Do
> you somehow
>
> a) Allocate the custom image memory (if known size & pixtype)
> b) Create an IO object to read data from an image file
> c) manually iterate over the IO object data with Get/Set accessors to put
> data into custom image memory
> d) Filter, etc. (if possible)
> e) Write out image data to disk (somehow)
>
> I can take the performance hit for the sparse image with Setting values.
>
> Should I be looking into streaming data models?  Essentially all I need to
> do is stream a set of 2D input data straight out to a 3D output data file.
> I'm currently using a series reader (with a regex to define the image
> series) and piping it straight to a writer (with vtkIO for the writer).  If
> a streaming model is available for this data transfer, it might avoid the
> segfaults due to allocation limits (I have plenty of disk space, just not
> enough RAM).
>
> Thanks!
> Darren
>
>
>
>
>
> On Wed, Nov 4, 2009 at 1:54 PM, Dan Mueller <dan.muel@...> wrote:
>>
>> Hi Darren,
>>
>> You might want to investigate the following Insight Journal submission:
>>    http://www.insight-journal.org/browse/publication/646
>>
>> <shameless plug>
>> Make sure you leave a review!
>> </shameless plug>
>>
>> Cheers, Dan
>>
>> 2009/11/4 Darren Weber <darren.weber.lists@...>:
>> >
>> > I'm working with a very large dataset (1000's of 2D images, size >
>> > 1024x1024
>> > pixels, ushort RGB pixels).  A large portion of these images is
>> > background.
>> >
>> > A few routines, like saving all the 2D images into a 3D volume, fail
>> > with
>> > segfaults due to malloc errors (on OSX 10.5.8 with 24Gb RAM; using ITK
>> > 3.16.0).
>> >
>> > Is there an image format that provides 'sparse' images?  This implies
>> > there
>> > are no data values for some of the image pixels (is this the same thing
>> > as
>> > transparent background?).
>> >
>> > What is an optimal image format for working with this data?
>> >
>> > Thanks in advance (TIA),
>> > Darren
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users

Re: sparse images?

by Bradley Lowekamp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

There is an article I wrote for the Kitware Source that is useful if you want to do IO Streaming:

And it's related example in:
Insight/Examples/IO/VisibleHumanStreamReadWrite.cxx


Currently metaIO is the only format to fully support streaming IO. So you will need to use an mha  (or mhd) file extension.

To enable streaming IO, you simple need to have a file format which supports it and the call

ImageFileWriter::SetNumerOfStreamDivisions( unsigned int )

For this parameter the number of z-slices frequently works well, which can be obtained after

ImageFileReader::GenerateOutputInformation( )

has been called. Then accessing the LargestPossibleRegion.


Hope this helps,
Brad

On Nov 5, 2009, at 4:24 AM, Dan Mueller wrote:

Hi Darren,

Reading your email again, perhaps I jumped the gun a bit by suggesting
the sparse image. The sparse image is designed for images which have a
few relevant pixels, but the rest background (ie. you don't set all
the pixels, just a few here and there).

If you need to process an entire image, then I think ITK's read/write
streaming feature will better suit your needs (assuming you can break
your processing into chunks).
   http://www.cmake.org/pipermail/insight-users/2002-May/000472.html
   http://www.itk.org/Doxygen/html/StreamingPage.html
   http://www.itk.org/Doxygen/html/group__StreamingGroup.html
   http://www.insight-journal.org/browse/publication/305

Please provide an exact overview of what you are trying to achieve, so
we can help determine the best approach.

Cheers, Dan

2009/11/5 Darren Weber <darren.weber.lists@...>:

Hi Dan,

The proposal is very interesting.  Having read the PDF, I'll take a look at
the code.  I may be able to offer a review (time permitting).

Do you have any recent examples of using either the SliceContiguous or the
Sparse images to compose a 3D volume from a series of 2D image files?  Do
you somehow

a) Allocate the custom image memory (if known size & pixtype)
b) Create an IO object to read data from an image file
c) manually iterate over the IO object data with Get/Set accessors to put
data into custom image memory
d) Filter, etc. (if possible)
e) Write out image data to disk (somehow)

I can take the performance hit for the sparse image with Setting values.

Should I be looking into streaming data models?  Essentially all I need to
do is stream a set of 2D input data straight out to a 3D output data file.
I'm currently using a series reader (with a regex to define the image
series) and piping it straight to a writer (with vtkIO for the writer).  If
a streaming model is available for this data transfer, it might avoid the
segfaults due to allocation limits (I have plenty of disk space, just not
enough RAM).

Thanks!
Darren





On Wed, Nov 4, 2009 at 1:54 PM, Dan Mueller <dan.muel@...> wrote:

Hi Darren,

You might want to investigate the following Insight Journal submission:
   http://www.insight-journal.org/browse/publication/646

<shameless plug>
Make sure you leave a review!
</shameless plug>

Cheers, Dan

2009/11/4 Darren Weber <darren.weber.lists@...>:

I'm working with a very large dataset (1000's of 2D images, size >
1024x1024
pixels, ushort RGB pixels).  A large portion of these images is
background.

A few routines, like saving all the 2D images into a 3D volume, fail
with
segfaults due to malloc errors (on OSX 10.5.8 with 24Gb RAM; using ITK
3.16.0).

Is there an image format that provides 'sparse' images?  This implies
there
are no data values for some of the image pixels (is this the same thing
as
transparent background?).

What is an optimal image format for working with this data?

Thanks in advance (TIA),
Darren
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users

========================================================

Bradley Lowekamp  

Lockheed Martin Contractor for

Office of High Performance Computing and Communications

National Library of Medicine 

blowekamp@...




_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users