[Insight-developers] ShrinkFilter - Bugs from double precision

Bill Lorensen bill.lorensen at gmail.com
Fri Apr 10 11:48:57 EDT 2009


Luis,

Those methods are outside of the loop. They don't affect the
performance. Brad, replaced the class inside the loop (see comments)
with optimized code.

Bill

On Fri, Apr 10, 2009 at 11:34 AM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>
> Hi Brad,
>
> I thought that in order to reduce computation time we were planning
> to stay away from the methods:
>
>  outputPtr->TransformIndexToPhysicalPoint( outputIndex, tempPoint );
>  inputPtr->TransformPhysicalPointToIndex( tempPoint, inputIndex );
>
> e.g. lines 253-254...
>
> Probably I'm missing something again...
>
>
>   Luis
>
> --------------------------
> Bradley Lowekamp wrote:
>>
>> The committed changes seem to achieve all the goals and desired behavior
>> everyone has been wanting for this class.
>>
>>
>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkShrinkImageFilter.txx?root=Insight&r1=1.58&r2=1.60
>> <http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/BasicFilters/itkShrinkImageFilter.txx?root=Insight&r1=1.58&r2=1.60>
>>
>> Any additional feedback or review of these changes would be appreciated
>> while I still have things fresh in my mind.
>>
>> Thanks,
>> Brad
>>
>>
>> On Apr 9, 2009, at 10:30 AM, Lowekamp, Bradley (NIH/NLM/LHC) [C] wrote:
>>
>>> Thank you! That explains it!
>>>
>>> I am still going to convert what can to index integer arithmetic and the
>>> remainder I will use your recommendation.
>>>
>>> Thanks,
>>> Brad
>>>
>>> On Apr 9, 2009, at 10:14 AM, Tom Vercauteren wrote:
>>>
>>>> Hi Bradley,
>>>>
>>>> This is most certainly related to TransformPhysicalPointToIndex being
>>>> wrong:
>>>> http://www.itk.org/Bug/view.php?id=6558
>>>>
>>>> Instead of rounding to the nearest integer,
>>>> TransformPhysicalPointToIndex simply casts the coordinates so if your
>>>> continuous index is
>>>>  2.9999999999999999
>>>> the corresponding index will be
>>>>  2
>>>> and not
>>>>  3
>>>>
>>>> I usually stay away from TransformPhysicalPointToIndex and use
>>>> TransformPhysicalPointToContinuousIndex followed by a loop of
>>>> vnl_math_round.
>>>>
>>>> Tom
>>>>
>>>> On Thu, Apr 9, 2009 at 16:01, Bradley Lowekamp <blowekamp at mail.nih.gov
>>>> <mailto:blowekamp at mail.nih.gov>> wrote:
>>>>
>>>>> To look into why my changes caused problem, I compared the computed
>>>>> index
>>>>
>>>>> between the ImageBase::Transform and the my supposed optimized
>>>>> algebraic
>>>>
>>>>> equivalent based on integer index operation.
>>>>
> _______________________________________________
> 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
>


More information about the Insight-developers mailing list