[Insight-users] Gatens Label Object Representation and Manipulation

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Thu Mar 4 19:29:03 EST 2010


Hi Christian,

err, I gave a link to a wrong example.

You're right, this class is not yet in ITK, and the contribution to  
the insight journal is not updated to work properly with the changes  
made in the process to integrate that contribution in the review folder.
The repository is up to date however, and you should use the classes  
from there:

   http://mima2.jouy.inra.fr/darcs/contrib-itk/ 
binaryAttributeMorphology/
   http://mima2.jouy.inra.fr/darcs/contrib-itk/binaryAttributeMorphology/binaryAttributeMorphology.tar.gz

The classes at the root of that directory are the ones still missing  
in ITK. The other ones have been moved to the directory itk-3.15.

Regards,

Gaëtan


Le 1 mars 10 à 21:17, Christian Werner a écrit :

> Wonderful news, I have colored labeling now!
>
> The trick was to update the itkLabelMapToRGBImageFilter.h and .txx  
> by renaming the
>
> virtual void ThreadedGenerateData( LabelObjectType * labelObject );
> to
>
> virtual void ThreadedProcessLabelObject( LabelObjectType *  
> labelObject );
> I found this after figuring out that the itkLabelMapToLabelImage  
> (which worked) is actually part of the Review Code and is shipped  
> with the ITK source, whereas the RGB variant comes from the package  
> here:
>
> http://www.insight-journal.org/browse/publication/176
>
> Why isn't the RGB labeling part of the Review Source anyway?
>
>
> Best regards,
> Christian
>
>
>
> Christian Werner wrote:
>> Hi!
>>
>> I have implemented your suggestion. I now draw a white pixel into  
>> the image that is produced by the LabelMapToRGBImageFilter. I also  
>> drawed a black one next to the white one. Then I tried drawing all  
>> different kinds of pixel. They are all visible and have the color  
>> they are set to.
>>
>> RGBImageType::Pointer debugImage = label2RGBImage->GetOutput();
>> itk::Index<2> pixelIndex;
>> pixelIndex[0] = 100; pixelIndex[1] = 100;
>> RGBPixelType RGBValue;
>> RGBValue[0] = RGBValue[1] = RGBValue[2] = 255;
>> debugImage->SetPixel( pixelIndex, RGBValue );
>>
>> ...and the same way a black pixel next to the white
>>
>>
>> Since LabelMapToLabelImage Filter yields an image where the  
>> labeling is clearly visible in shades of grey, I do not know what  
>> to try further, the RGBLabeler does not seem to produce anything,  
>> i.e. just produces an empty image regardless of its input. No  
>> matter if I save the image as .tif, .jpg or .bmp, the only thing I  
>> see now are my newly generated test pixels or nothing, if I comment  
>> them out.
>>
>>
>>
>> Kishore Mosaliganti wrote:
>>> Hi Christian,
>>>
>>> Before writing out the output image pointer, can you hard code to  
>>> set
>>> 1 pixel in the RGB image to [255, 255, 255] and another pixel to
>>> [0,0,0] and see if the output is showing those pixels in different
>>> colors.
>>>
>>> I am just wondering
>>>
>>> (i) if the thresholds you set are not giving you two different  
>>> labels
>>> and so everything is black.
>>> (ii) The labels have low ranges in the RGB space.
>>>
>>>
>>> Kishore
>>>
>>>
>>> On Sun, Feb 28, 2010 at 5:56 PM, Christian Werner
>>> <christian.werner at rwth-aachen.de> wrote:
>>>
>>>> Yes, this RGBPixel Type makes sense... :)
>>>>
>>>> Unfortunately I am still fighting to get the  
>>>> LabelMapToRGBImageFilter make
>>>> its work. Now that I fiddled around with this without success I  
>>>> tried the
>>>> LabelMapToLabelImageFilter for a change and voila: that worked  
>>>> with exactly
>>>> the same style of code! I am getting a labeled image with my  
>>>> objects painted
>>>> in all shades of grey. But when using the RGB labeling I get  
>>>> black void.
>>>>
>>>> I attached my code, maybe I am blind or still misunderstand  
>>>> something, but I
>>>> really don't know how to fix this.
>>>>
>>>> Best regards,
>>>> Christian
>>>>
>>>>
>>>>
>>>>
>>>> Gaëtan Lehmann wrote:
>>>>
>>>>> Hi Christian,
>>>>>
>>>>> The output pixel type must be a RGBPixel. See an example at
>>>>>
>>>>>
>>>>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Testing/Code/Review/itkLabelToRGBImageFilterTest.cxx?revision=1.3&root=Insight&view=markup
>>>>>
>>>>> Regards,
>>>>>
>>>>> Gaëtan
>>>>>
>>>>>
>>>>> Le 28 févr. 10 à 15:38, Christian Werner a écrit :
>>>>>
>>>>>
>>>>>> Hello!
>>>>>>
>>>>>> Thanks for your reply. The itk:: prefix indeed helped me  
>>>>>> getting a few
>>>>>> lines further. Now I get errors when I want to instantiate a
>>>>>> LabelToRGBImageType. I have attached my little program. Its  
>>>>>> simple purpose
>>>>>> is to do some thresholding and then display all ojects in color  
>>>>>> and save the
>>>>>> resulting file. It would be nice if you could help me here.
>>>>>>
>>>>>> The following errors all come from the very last line in the  
>>>>>> code before
>>>>>> everything else is commented out.
>>>>>>
>>>>>>
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: In
>>>>>> constructor ‘itk::Functor::LabelToRGBFunctor<TLabel,
>>>>>> TRGBPixel>::LabelToRGBFunctor() [with TLabel = unsigned int,  
>>>>>> TRGBPixel =
>>>>>> unsigned char]’:
>>>>>> /home/christian/programming/itk/labeling/ 
>>>>>> itkLabelMapToRGBImageFilter.cxx:42:
>>>>>>  instantiated from ‘void  
>>>>>> itk::LabelMapToRGBImageFilter<TInputImage,
>>>>>> TOutputImage>::BeforeThreadedGenerateData() [with TInputImage =
>>>>>> itk::LabelMap<itk::ShapeLabelObject<unsigned int, 2u> >,  
>>>>>> TOutputImage =
>>>>>> itk::Image<unsigned char, 2u>]’
>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:75:    
>>>>>> instantiated
>>>>>> from here
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: 
>>>>>> 51: error:
>>>>>> ‘unsigned char’ is not a class, struct, or union type
>>>>>>
>>>>>> /home/christian/programming/itk/labeling/ 
>>>>>> itkLabelMapToRGBImageFilter.cxx:42:
>>>>>>  instantiated from ‘void  
>>>>>> itk::LabelMapToRGBImageFilter<TInputImage,
>>>>>> TOutputImage>::BeforeThreadedGenerateData() [with TInputImage =
>>>>>> itk::LabelMap<itk::ShapeLabelObject<unsigned int, 2u> >,  
>>>>>> TOutputImage =
>>>>>> itk::Image<unsigned char, 2u>]’
>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:75:    
>>>>>> instantiated
>>>>>> from here
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: 
>>>>>> 98: error:
>>>>>> request for member ‘Fill’ in  
>>>>>> ‘((itk::Functor::LabelToRGBFunctor<unsigned
>>>>>> int, unsigned char>*)this)- 
>>>>>> >itk::Functor::LabelToRGBFunctor<unsigned int,
>>>>>> unsigned char>::m_BackgroundColor’, which is of non-class type  
>>>>>> ‘unsigned
>>>>>> char’
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: 
>>>>>> 98: error:
>>>>>> ‘unsigned char’ is not a class, struct, or union type
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h:50:
>>>>>> warning: unused variable ‘rgbPixel’
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h:  
>>>>>> In member
>>>>>> function ‘void itk::Functor::LabelToRGBFunctor<TLabel,
>>>>>> TRGBPixel>::AddColor(unsigned char, unsigned char, unsigned  
>>>>>> char) [with
>>>>>> TLabel = unsigned int, TRGBPixel = unsigned char]’:
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h:65:
>>>>>> instantiated from ‘itk::Functor::LabelToRGBFunctor<TLabel,
>>>>>> TRGBPixel>::LabelToRGBFunctor() [with TLabel = unsigned int,  
>>>>>> TRGBPixel =
>>>>>> unsigned char]’
>>>>>>
>>>>>> /home/christian/programming/itk/labeling/ 
>>>>>> itkLabelMapToRGBImageFilter.cxx:42:
>>>>>>  instantiated from ‘void  
>>>>>> itk::LabelMapToRGBImageFilter<TInputImage,
>>>>>> TOutputImage>::BeforeThreadedGenerateData() [with TInputImage =
>>>>>> itk::LabelMap<itk::ShapeLabelObject<unsigned int, 2u> >,  
>>>>>> TOutputImage =
>>>>>> itk::Image<unsigned char, 2u>]’
>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:75:    
>>>>>> instantiated
>>>>>> from here
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: 
>>>>>> 118: error:
>>>>>> ‘unsigned char’ is not a class, struct, or union type
>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/itkLabelToRGBFunctor.h: 
>>>>>> 122: error:
>>>>>> request for member ‘Set’ in ‘rgbPixel’, which is of non-class  
>>>>>> type ‘unsigned
>>>>>> char’
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Gaëtan Lehmann wrote:
>>>>>>
>>>>>>> Le 27 févr. 10 à 22:59, Christian Werner a écrit :
>>>>>>>
>>>>>>>
>>>>>>>> Hi!
>>>>>>>>
>>>>>>>> Yes, USE_REVIEW is on I am sure about that since I already  
>>>>>>>> built some
>>>>>>>> libraries. I am using Debian Lenny and gcc 4.4.3. But maybe  
>>>>>>>> it is only
>>>>>>>> because I misunderstand something.
>>>>>>>>
>>>>>>>> I see that I need label objects anyway, so it does not harm  
>>>>>>>> if I
>>>>>>>> include them in my own code. But I was really confused about  
>>>>>>>> getting errors
>>>>>>>> when just including a single header. Shouldn't this header  
>>>>>>>> take care of his
>>>>>>>> own dependencies?
>>>>>>>>
>>>>>>>> Anyway, these 3 lines are the very beginning of my labeling  
>>>>>>>> try and
>>>>>>>> these already produce errors:
>>>>>>>>
>>>>>>>> typedef itk::Image< unsigned char,  2 >   InputImageType;
>>>>>>>> ...
>>>>>>>> 56  typedef ShapeLabelObject<unsigned char, 2> LabelObjectType;
>>>>>>>> 57  typedef LabelMap< LabelObjectType >        LabelMapType;
>>>>>>>>
>>>>>>> shouldn't you add the itk:: prefix to those typedefs?
>>>>>>>
>>>>>>> typedef itk::ShapeLabelObject<unsigned char, 2> LabelObjectType;
>>>>>>> typedef LabelMap< LabelObjectType >        LabelMapType;
>>>>>>>
>>>>>>> a few other notes:
>>>>>>>
>>>>>>> * you may be careful about the type used to store the labels -  
>>>>>>> unsigned
>>>>>>> char is likely to become quickly unable to store all the  
>>>>>>> labels in your
>>>>>>> image
>>>>>>> * when using ShapeLabelObject, it is convenient to use
>>>>>>> BinaryImageToShapeLabelMapFilter instead of  
>>>>>>> BinaryImageToLabelMapFilter: the
>>>>>>> attribute values are computed with a single filter, and it can  
>>>>>>> be declared
>>>>>>> simply as
>>>>>>>
>>>>>>> typedef itk::BinaryImageToLabelMapFilter<InputImageType>
>>>>>>> ImageToLabelType;
>>>>>>>
>>>>>>> without much type declaration.
>>>>>>>
>>>>>>> Gaëtan
>>>>>>>
>>>>>>>
>>>>>>>> 58  typedef itk::BinaryImageToLabelMapFilter<InputImageType,
>>>>>>>> LabelMapType> ImageToLabelType;
>>>>>>>> 59  //2)
>>>>>>>> 60  ImageToLabelType::Pointer image2LabelMap =  
>>>>>>>> ImageToLabelType::New();
>>>>>>>>
>>>>>>>> Compiler Errors:
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx: In  
>>>>>>>> function ‘int
>>>>>>>> main(int, char**)’:
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:56: error:
>>>>>>>> expected initializer before ‘<’ token
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:57: error:
>>>>>>>> expected initializer before ‘<’ token
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:58: error:
>>>>>>>> ‘LabelMapType’ was not declared in this scope
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:58: error:
>>>>>>>> template argument 2 is invalid
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:58:  
>>>>>>>> error: invalid
>>>>>>>> type in declaration before ‘;’ token
>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:60: error:
>>>>>>>> expected initializer before ‘image2LabelMap’
>>>>>>>>
>>>>>>>> Maybe I don't get this labeling right... ?
>>>>>>>>
>>>>>>>> This is what I include now:
>>>>>>>>
>>>>>>>> #include "itkImageToImageFilter.h"
>>>>>>>> #include "itkShapeLabelObject.h"
>>>>>>>> #include "itkLabelMap.h"
>>>>>>>> #include "itkBinaryImageToLabelMapFilter.h"
>>>>>>>> #include "itkLabelMapToRGBImageFilter.h"
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Bill Lorensen wrote:
>>>>>>>>
>>>>>>>>> When you configured ITK did you build with USE_REVIEW ON?
>>>>>>>>>
>>>>>>>>> If so, what platform/compiler are you using?
>>>>>>>>>
>>>>>>>>> Bill
>>>>>>>>>
>>>>>>>>> On Sat, Feb 27, 2010 at 2:24 PM, Christian Werner
>>>>>>>>> <christian.werner at rwth-aachen.de> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Hello!
>>>>>>>>>>
>>>>>>>>>> I am off to make some serious object labling and  
>>>>>>>>>> manipulation.
>>>>>>>>>> Unfortunately
>>>>>>>>>> some very basic code does not compile:
>>>>>>>>>>
>>>>>>>>>> #include "itkBinaryImageToLabelMapFilter.h"
>>>>>>>>>> int main( int argc, char * argv[] )
>>>>>>>>>> {
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> christian at trinity:~/programming/itk/labeling/bin$ make -j2
>>>>>>>>>> Scanning dependencies of target testITK
>>>>>>>>>> [100%] Building CXX object CMakeFiles/testITK.dir/testITK.o
>>>>>>>>>> In file included from
>>>>>>>>>> /home/christian/programming/itk/labeling/testITK.cxx:2:
>>>>>>>>>>
>>>>>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/ 
>>>>>>>>>> itkBinaryImageToLabelMapFilter.h:54:
>>>>>>>>>> error: expected type-specifier before ‘LabelMap’
>>>>>>>>>>
>>>>>>>>>> /opt/InsightToolkit-3.16.0/Code/Review/ 
>>>>>>>>>> itkBinaryImageToLabelMapFilter.h:54:
>>>>>>>>>> error: expected ‘>’ before ‘LabelMap’
>>>>>>>>>> make[2]: *** [CMakeFiles/testITK.dir/testITK.o] Error 1
>>>>>>>>>> make[1]: *** [CMakeFiles/testITK.dir/all] Error 2
>>>>>>>>>> make: *** [all] Error 2
>>>>>>>>>>
>>>>>>>>>> I can fix this, when I edit (and this already feels bad) the
>>>>>>>>>> itkBinaryImageToLabelMapFilter.h by adding
>>>>>>>>>>
>>>>>>>>>> #include "itkLabelMap.h"
>>>>>>>>>> #include "itkLabelObject.h"
>>>>>>>>>>
>>>>>>>>>> The above code compiles this way. However if I actually use  
>>>>>>>>>> some
>>>>>>>>>> functions
>>>>>>>>>> out of the itkBinaryImageToLabelMapFilter.h I get errors  
>>>>>>>>>> over errors.
>>>>>>>>>>
>>>>>>>>>> My CMakeLists looks like this:
>>>>>>>>>>
>>>>>>>>>> cmake_minimum_required(VERSION 2.4)
>>>>>>>>>>
>>>>>>>>>> PROJECT(testITK)
>>>>>>>>>>
>>>>>>>>>> FIND_PACKAGE(ITK REQUIRED)
>>>>>>>>>> IF(ITK_FOUND)
>>>>>>>>>> INCLUDE(${ITK_USE_FILE})
>>>>>>>>>> ENDIF(ITK_FOUND)
>>>>>>>>>>
>>>>>>>>>> ADD_EXECUTABLE(testITK testITK.cxx)
>>>>>>>>>>
>>>>>>>>>> TARGET_LINK_LIBRARIES(testITK ITKCommon ITKIO ITKBasicFilters
>>>>>>>>>> ITKStatistics)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> General ITK programming works without trouble. I must be  
>>>>>>>>>> doing
>>>>>>>>>> something
>>>>>>>>>> totally wrong, any suggestions?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Christian
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _____________________________________
>>>>>>>>>> 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
>>>>>>>>
>>>>>> #include "itkImage.h"
>>>>>> #include "itkImageFileReader.h"
>>>>>> #include "itkImageFileWriter.h"
>>>>>>
>>>>>> #include "itkBinaryThresholdImageFilter.h"
>>>>>>
>>>>>> #include "itkImageToImageFilter.h"
>>>>>> #include "itkShapeLabelObject.h"
>>>>>> #include "itkLabelMap.h"
>>>>>> #include "itkBinaryImageToLabelMapFilter.h"
>>>>>> #include "itkLabelMapToRGBImageFilter.h"
>>>>>>
>>>>>> int main( int argc, char * argv[] )
>>>>>> {
>>>>>> if( argc < 5 )
>>>>>>  {
>>>>>>  std::cerr << "Usage: " << argv[0];
>>>>>>  std::cerr << " inputImageFile outputImageFile ";
>>>>>>  std::cerr << " lowerThreshold upperThreshold " << std::endl;
>>>>>>  //std::cerr << " outsideValue insideValue   "  << std::endl;
>>>>>>  return EXIT_FAILURE;
>>>>>>  }
>>>>>>
>>>>>> typedef  unsigned char  InputPixelType;
>>>>>> typedef  unsigned char  OutputPixelType;
>>>>>> typedef itk::Image< InputPixelType,  2 >   InputImageType;
>>>>>> typedef itk::Image< OutputPixelType, 2 >   OutputImageType;
>>>>>> typedef itk::BinaryThresholdImageFilter<
>>>>>>             InputImageType, OutputImageType >  FilterType;
>>>>>> typedef itk::ImageFileReader< InputImageType >  ReaderType;
>>>>>> typedef itk::ImageFileWriter< OutputImageType >  WriterType;
>>>>>>
>>>>>> ReaderType::Pointer reader = ReaderType::New();
>>>>>> FilterType::Pointer filter = FilterType::New();
>>>>>>
>>>>>> reader->SetFileName( argv[1] );
>>>>>>
>>>>>> /// filtering
>>>>>> filter->SetInput( reader->GetOutput() );
>>>>>> const OutputPixelType outsideValue = 0;
>>>>>> const OutputPixelType insideValue  = 255;
>>>>>> filter->SetOutsideValue( outsideValue );
>>>>>> filter->SetInsideValue(  insideValue  );
>>>>>> const InputPixelType lowerThreshold = atoi(argv[3]);
>>>>>> const InputPixelType upperThreshold = atoi(argv[4]);
>>>>>>
>>>>>> filter->SetLowerThreshold( lowerThreshold );
>>>>>> filter->SetUpperThreshold( upperThreshold );
>>>>>> // Software Guide : EndCodeSnippet
>>>>>>
>>>>>> filter->Update();
>>>>>>
>>>>>> /// labeling
>>>>>> //1)
>>>>>> typedef itk::ShapeLabelObject<unsigned int, 2> LabelObjectType;
>>>>>> typedef itk::LabelMap< LabelObjectType >       LabelMapType;
>>>>>> typedef itk::BinaryImageToLabelMapFilter<InputImageType,  
>>>>>> LabelMapType>
>>>>>> ImageToLabelType;
>>>>>> typedef itk::LabelMapToRGBImageFilter<LabelMapType,  
>>>>>> OutputImageType>
>>>>>> LabelToRGBImageType;
>>>>>> //2)
>>>>>> ImageToLabelType::Pointer image2LabelMap    =  
>>>>>> ImageToLabelType::New();
>>>>>> LabelToRGBImageType::Pointer label2RGBImage =
>>>>>> LabelToRGBImageType::New();
>>>>>> //image2LabelMap->SetInput( filter->getOutput() );
>>>>>> //label2RGBImage->SetInput( image2LabelMap->getOutput() );
>>>>>>
>>>>>> ///save result image
>>>>>> //WriterType::Pointer writer = WriterType::New();
>>>>>> //writer->SetInput( label2RGBImage->GetOutput() );
>>>>>> //writer->SetFileName( argv[2] );
>>>>>> //writer->Update();
>>>>>>
>>>>>> return EXIT_SUCCESS;
>>>>>> }
>>>>>> _____________________________________
>>>>>> 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
>
> _____________________________________
> 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

-- 
Gaëtan Lehmann
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
http://voxel.jouy.inra.fr  http://www.itk.org
http://www.mandriva.org  http://www.bepo.fr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 203 bytes
Desc: Ceci est une signature ?lectronique PGP
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100305/37383abc/attachment.pgp>


More information about the Insight-users mailing list