[Insight-developers] Warnings : Slicer & ITK

Luis Ibanez luis.ibanez at kitware.com
Mon Apr 27 19:11:05 EDT 2009


Hi Steve,

Thanks for pointing this out.

--

Fixes for the warnings that you identified in ITK
have now been committed:

http://www.itk.org/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkConnectedComponentImageFilter.h?root=Insight&r1=1.22&r2=1.23&sortby=date
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkConnectedComponentImageFilter.txx?root=Insight&r1=1.31&r2=1.32&sortby=date
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkRelabelComponentImageFilter.txx?root=Insight&r1=1.17&r2=1.18&sortby=date
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkRelabelComponentImageFilter.h?root=Insight&r1=1.16&r2=1.17&sortby=date


The changes are a bit different of what is proposed in your patch.

Instead of just adding the static_casts, we have introduced additional
typedefs to clarify the use of the two distinct concepts:

      a) LabelType of a connected component.
      b) ObjectSizeType of a connected component.


I'm curious about why these warnings didn't show up in the
ITK Dashboard...

One possibility may be that Slicer (or Slicer Modules) may be
instantiating connected component filters by using images of
pixel type different than "unsigned long".  Although it is
admissible to do so, it is also risky, specially if the pixel
type in question doesn't really has the capacity for counting
all the potential connected components that are present in
the image or that can be generated during the intermediate
procedure of labeling.


--

Could you share with use the Warning flags that you are using ?
(and remind us of what platform pointed out these warnings)

We will set them in one of the similar builds in the ITK Dashboards.


---


About porting these changes back to ITK 3.10, we rather avoid this.


We only port back fixes for bugs, and only do it for the most recent
release branch. In this case ITK 3.12.


On the Bright side, ITK 3.14 will be out by the end of May.


    Please let us know if you find any other problems,


        Thanks



             Luis




---------------------
Steve Pieper wrote:
> Hi -
> 
> Remember Bill's graffiti wisdom?
> 
> http://www.na-mic.org/Wiki/index.php/2009_Winter_Project_Week_Compiler_Warnings:Slicer3_Graffiti 
> 
> 
> Well, I took it to heart and cleaned up the remaining compile warnings 
> in slicer3 (trunk and 3.4 release branch).  *Except* for a few lingering 
> ones that trace back to ITK.
> 
> The following changes are against ITK 3.12.  It would also be great if 
> the same fixes (and the other recent fixes to this class) could go into 
> ITK 3.10 since that's what we're using for slicer3.4.
> 
> If we do this, then people who download and build the release branch 
> would get 0 warnings and 0 errors, and we'd all like that, wouldn't we?
> 
> Thanks,
> Steve
> 
> p.s. please also doublecheck that the changes make sense - they work for 
> my test cases and I believe the are correct.
> 
> 
> % cvs -q diff
> Index: Code/BasicFilters/itkConnectedComponentImageFilter.txx
> ===================================================================
> RCS file: 
> /cvsroot/Insight/Insight/Code/BasicFilters/itkConnectedComponentImageFilter.txx,v 
> 
> retrieving revision 1.31
> diff -r1.31 itkConnectedComponentImageFilter.txx
> 600c600
> <   m_Consecutive[m_BackgroundValue] = m_BackgroundValue;
> ---
>  >   m_Consecutive[static_cast<unsigned long>(m_BackgroundValue)] = 
> static_cast<unsigned long>(m_BackgroundValue);
> Index: Code/BasicFilters/itkRelabelComponentImageFilter.txx
> ===================================================================
> RCS file: 
> /cvsroot/Insight/Insight/Code/BasicFilters/itkRelabelComponentImageFilter.txx,v 
> 
> retrieving revision 1.17
> diff -r1.17 itkRelabelComponentImageFilter.txx
> 105c105
> <       mapIt = sizeMap.find( inputValue );
> ---
>  >       mapIt = sizeMap.find( static_cast<unsigned long>(inputValue) );
> 109,110c109,110
> <         initialSize.m_ObjectNumber = inputValue;
> <         sizeMap.insert( MapValueType( inputValue, initialSize ) );
> ---
>  >         initialSize.m_ObjectNumber = static_cast<unsigned 
> long>(inputValue);
>  >         sizeMap.insert( MapValueType( static_cast<unsigned 
> long>(inputValue), initialSize ) );
> 213c213
> <       outputValue = static_cast<OutputPixelType>(relabelMap[inputValue]);
> ---
>  >       outputValue = 
> static_cast<OutputPixelType>(relabelMap[static_cast<unsigned 
> long>(inputValue)]);
> _______________________________________________
> NAMIC-Eng mailing list
> NAMIC-Eng at na-mic.org
> http://public.kitware.com/cgi-bin/mailman/listinfo/namic-eng
> 


More information about the Insight-developers mailing list