[Insight-developers] Warning in itkScalarConnectedComponentImageFilter
Luis Ibanez
luis.ibanez at kitware.com
Fri Jul 3 12:46:09 EDT 2009
Hi Kevin,
You may need a small change to make this coder truly generic.
The code:
TInput absDifference = static_cast<TInput>( vnl_math_abs( a-b ) );
Where
a and b are of type "TInput"
Will produce incorrect result for any "unsigned" integer type
(unsigned char, int, long).
For example:
unsigned int k = 100;
unsigned int p = 10;
std::cout << p - k << std::endl;
produces:
4294967206
instead of the "-90" that one would
expect at first sight.
The generic code should be of the form:
typedef itk::NumericTraits<TInput>::RealType InputRealType;
TInput absDifference = static_cast<TInput>(
vnl_math_abs( static_cast<InputRealType>( a ) -
static_cast<InputRealType>( b ) ) );
BTW: If you commit the code, please make sure that you will
monitor the Dashboard in the following hours, as well
as the Nightlies that will show up tomorrow.
Regards,
Luis
-------------------------------------------------------------------
On Fri, Jul 3, 2009 at 12:20 PM, Kevin H. Hobbs <hobbsk at ohiou.edu> wrote:
> When the itkScalarConnectedComponentImageFilter is instantiated with an
> int pixel type gcc produces a warning like the first one on the farsight
> dashboard here:
>
> http://www.cdash.org/CDash/viewBuildError.php?type=1&buildid=369974
>
> The line in question is :
>
> return (vnl_math_abs(a-b) <= m_Threshold);
>
> Stephen Aylward suggested on the farsight developers list here:
>
>
> http://www.kitware.com/cgi-bin/mailman/private/farsight-developers/2009-June/000113.html
>
> that this should be something like :
>
> TInput absDifference = static_cast<TInput>( vnl_math_abs( a-b ) );
> if( absDifference <= m_Threshold )
> {
> return true;
> }
> else
> {
> return false;
> }
>
> May I make this change?
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.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-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090703/4283901e/attachment.htm>
More information about the Insight-developers
mailing list