[Insight-users] Reading LSM images

Curtis Rueden ctrueden at wisc.edu
Mon Feb 22 17:23:30 EST 2010


Hi Jesse,

The reader works beautifully - I can't thank you enough.
>

Great that you found a working solution. Nonetheless, for completeness in
the list archive, I wanted to follow up on what Alex said:

On Mon, Feb 15, 2010 at 10:46 AM, Alexandre GOUAILLARD <
agouaillard at gmail.com> wrote:

> As dan pointed out, the best reader, or the one including most
> functionaity and the most up to date, out there might be the one from
> OME, and curtis should have a wrapping between OME and ITK IO working
> (in cc).
>

There is indeed a preliminary version of an ITK ImageIO plugin that uses
Bio-Formats (http://loci.wisc.edu/software/bio-formats), which includes
support for LSM among many other life sciences formats.

Right now the documentation is limited, but you can find build instructions
at:

http://www.farsight-toolkit.org/wiki/FARSIGHT_Tutorials/Building_Software/Bio-Formats/Building_ITK_Plugin

The license for the plugin is BSD, but the license for Bio-Formats itself
(Java code) is GPL, so please keep that in mind if you are planning to
distribute the JAR file with your application.

In the future, this page on our site will have more details on the plugin:
  http://www.loci.wisc.edu/bio-formats/itk

Feel free to contact the Bio-Formats team (
http://loci.wisc.edu/software/mailing-lists) with any questions or problems!

-Curtis

On Tue, Feb 16, 2010 at 10:11 PM, Jesse Stokum <jessestokum at gmail.com>wrote:

> The reader works beautifully - I can't thank you enough.
>
> Jesse
>
> On Mon, Feb 15, 2010 at 5:47 PM, Luis Ibanez <luis.ibanez at kitware.com>
> wrote:
> > Hi Alex,
> >
> > Thanks for the reminder.
> >
> >
> > Jesse:
> >
> > You may want to look at bioimageXD
> > if you don't mind using GPL code:
> >
> http://www.bioimagexd.net/index.php?option=com_content&task=view&id=14&Itemid=28
> >
> >
> > Otherwise,
> > you probably could use the vtkLSMReader
> > in gofigure2, that is under a BSD license,
> > as Alex pointed out.
> >
> >
> >
> >    Regards,
> >
> >
> >           Luis
> >
> >
> > -------------------------------------------------------
> > On Mon, Feb 15, 2010 at 11:46 AM, Alexandre GOUAILLARD
> > <agouaillard at gmail.com> wrote:
> >> hi luis, dan, all,
> >>
> >> luis, you might not remember that long thread we had about LSM reader,
> >> but the ITK one does not handle multi channels.
> >>
> >> Dan (and other from bioimageXD) made their vtkLSM reader available
> >> under BSD, and that s the one we eventually used for GoFigure. That
> >> the one gaethan is also using on a daily basis.
> >>
> >> As dan pointed out, the best reader, or the one including most
> >> functionaity and the most up to date, out there might be the one from
> >> OME, and curtis should have a wrapping between OME and ITK IO working
> >> (in cc).
> >>
> >> good luck.
> >>
> >> alex.
> >>
> >> On Sun, Feb 14, 2010 at 5:21 AM, Jesse Stokum <jessestokum at gmail.com>
> wrote:
> >>> Luis,
> >>>
> >>> I've surrounded my reader->update() line with a try, catch block that
> >>> catches itk::ExceptionObject. It doesn't seem to be even getting to
> >>> the catch block- simple std::cout statements inside the catch block
> >>> are not showing. The following unhandled exception appears however
> >>> when I run my program on the vs debugger:
> >>>
> >>> The thread 'Win32 Thread' (0x1a7c) has exited with code 0 (0x0).
> >>> Unhandled exception at 0x00b0a890 in CellSegment.exe: 0xC0000005:
> >>> Access violation writing location 0x08fc0040.
> >>>
> >>> The breakpoint that is detected by vs is in line 1116 of the class
> >>> itkTIFFImageIO.cxx.
> >>>
> >>> Thanks,
> >>>
> >>> Jesse
> >>>
> >>>
> >>>
> >>> On Sat, Feb 13, 2010 at 3:38 PM, Luis Ibanez <luis.ibanez at kitware.com>
> wrote:
> >>>> Hi Jesse,
> >>>>
> >>>> Thanks for the clarification.
> >>>>
> >>>> You are right, if the 3D image is in a single file, then
> >>>> using the ImageFileReader is the correct way to
> >>>> proceed.
> >>>>
> >>>> Could you please post to the list the exact text
> >>>> that you get from the Exceptions ?
> >>>>
> >>>> If you need examples on how to catch exceptions
> >>>> and print their error messages, you will find many
> >>>> of them in the directories under
> >>>>
> >>>>                     Insight/Examples
> >>>>
> >>>>
> >>>>     Thanks
> >>>>
> >>>>
> >>>>             Luis
> >>>>
> >>>>
> >>>> -----------------------------------------------------------------
> >>>> On Sat, Feb 13, 2010 at 12:33 PM, Jesse Stokum <jessestokum at gmail.com>
> wrote:
> >>>>> Luis,
> >>>>>
> >>>>> Thanks for the quick reply, I really appreciate it. The lsm image
> >>>>> stack that I'm working with are actually all in a single file - which
> >>>>> is why I hesitated to use the ImageSeriesReader for this one. I
> >>>>> suppose I could always split the stack into a series of slices imagej
> >>>>> or something else, but it would be more time efficient to just read
> in
> >>>>> the entire file. Also, intuitively I think that I would get better
> >>>>> filtering results if I handled it as a 3d image, though I could be
> >>>>> wrong about that. Thanks!
> >>>>>
> >>>>> Jesse
> >>>>>
> >>>>> On Fri, Feb 12, 2010 at 5:07 PM, Luis Ibanez <
> luis.ibanez at kitware.com> wrote:
> >>>>>> Hi Jesse,
> >>>>>>
> >>>>>>
> >>>>>> If you have the images in independent files (one file per slice),
> >>>>>> you should use the itk::ImageSeriesReader (instead of the
> >>>>>> itk::ImageFileReader).
> >>>>>>
> >>>>>>
> >>>>>> The LSM reader in ITK should be able to manage three channels
> >>>>>> (three components per pixel).
> >>>>>>
> >>>>>> You will find examples on how to use the ImageSeriesReader
> >>>>>> in the ITK Software Guide
> >>>>>>
> >>>>>>                   http://www.itk.org/ItkSoftwareGuide.pdf
> >>>>>>
> >>>>>> in the chapter "Reading and Writing Images",
> >>>>>>
> >>>>>> and you will find source code examples in the directory:
> >>>>>>
> >>>>>>                           Insight/Examples/IO
> >>>>>>
> >>>>>> in particular, you may find interesting the example:
> >>>>>>
> >>>>>>            RGBImageSeriesReadWrite.cxx
> >>>>>>
> >>>>>> you probably only need to replace there the PNGImageIO
> >>>>>> class with a LSMImageIO class.
> >>>>>>
> >>>>>>
> >>>>>> Please give it a try and let us know if you find any problems.
> >>>>>>
> >>>>>> BTW: I you get any Exceptions, please post to the list
> >>>>>> the *exact* error message that you get from the exception.
> >>>>>>
> >>>>>>
> >>>>>>     Thanks
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>           Luis
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> -------------------------------------------------------------------------------------
> >>>>>> On Fri, Feb 12, 2010 at 12:34 PM, Jesse Stokum <
> jessestokum at gmail.com> wrote:
> >>>>>>> I'm trying to use ITK's ImageFileReader to read in LSM format
> images
> >>>>>>> and my code is abruptly throwing exceptions. The images are three
> >>>>>>> channel, and are ~30 slices. Should I consider them 3d images?
> Here's
> >>>>>>> the code in my main() I've been trying:
> >>>>>>>
> >>>>>>>        typedef itk::RGBPixel<unsigned char> PixelType;
> >>>>>>>        typedef itk::Image<PixelType, 3> ImageType;
> >>>>>>>
> >>>>>>>        typedef itk::ImageFileReader<ImageType> ReaderType;
> >>>>>>>        typedef itk::LSMImageIO ImageIOType;
> >>>>>>>        typedef itk::ImageFileWriter<ImageType> WriterType;
> >>>>>>>
> >>>>>>>        ReaderType::Pointer reader = ReaderType::New();
> >>>>>>>        ImageIOType::Pointer lsmImageIO = ImageIOType::New();
> >>>>>>>        reader->SetImageIO(lsmImageIO);
> >>>>>>>        reader->SetFileName("Tests.lsm");
> >>>>>>>
> >>>>>>> Are lsm pixels vector pixels? I guess I'm just unsure how to handle
> >>>>>>> this situation. Thanks in advance!
> >>>>>>> _____________________________________
> >>>>>>> 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
> >>>
> >>
> >
> _____________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100222/7818b458/attachment-0001.htm>


More information about the Insight-users mailing list