This is a very interesting bug. That should require close attention.

When I have as many cores as slices, does this bug mean that I have been 
visiting each pixel multiple time?

Also I think I encountered this bug when I was trying to multithread the 
AnisotropicDiffusion's CalculateAverageGradientMagnitudeSquared method. I 
should likely revisit that issue.

Brad



On Apr 19, 2012, at 3:44 AM, wanlin wrote:

> I submitted a new patch. It should be able to handle all the cases. 
> 
> http://review.source.kitware.com/#/c/5213/
> 
> Cheer
> 
> wanlin
> 
> 
> On Wed, Apr 18, 2012 at 5:41 PM, wanlin <[email protected]> wrote:
> 
> In the case of [5,1], the image bufferedRegion is index[0,0], size[5,1]. 
> requestToProcessRegion is the same as bufferedRegion. 
> There is no NonBoundaryRegion with radius[1,1]. Meanwhile there is only one 
> boundary region in the Y direction.
> 
> I submit a patch which could address the issue.  However it could not handle 
> requestToProcessRegion is inside of BoundaryRegion.
> 
> best
> 
> 
> wanlin
> 
> On Wed, Apr 18, 2012 at 12:35 AM, Kris Zygmunt <[email protected]> wrote:
> 
> On Apr 17, 2012, at 4:48 AM, wanlin wrote:
> 
> 
> Hi,
>   The current implementation of BoundaryFacesCalculator is based on the 
> following assumption.
> 
> There is an overlap between requestToProcessRegion and nonBounaryRegion of 
> BufferedRegion.
> 
> Hence the first region in the output list is the nonBoundaryRegion in 
> requestToProcessRegion.
> 
> In your test, there is no overlap between requestToProcessRegion and 
> bufferedRegion since requstToProcessRegion index[Dimension-1] = 1, which 
> bufferedRegion index[Dimension - 1] = 0, size[Dimension - 1]  = 1, . The 
> ideal results ought to output 0 regions.
> 
> Should we change the implementationso the calculator could deal with any 
> cases of requestToProcessRegion and BufferedRegion? I am willing to put a 
> patch.
> 
> 
> thanks
> 
> 
> wanlin
> 
> 
> I don't think the correct answer is 0 regions if the purpose of the 
> calculator is to break the image up into regions for iteration.  The best way 
> to tell that it is working is that each pixel in the image should be visited 
> once and only once when iterating across the union of the regions returned by 
> the calculator.
> Let's look at two 2-D cases, a) [5,5] and b) [5,1].
> 
> In case a) the calculator returns the following regions:
> Index[1, 1], Size [3, 3], 9 pixels
> Index[0, 0], Size [1, 5], 5 pixels
> Index[4, 0], Size [1, 5], 5 pixels
> Index[1, 0], Size [3, 1], 3 pixels
> Index[1, 4], Size [3, 1], 3 pixels
> So all 25 pixels are visited once
> 
> In case b), the calculator currently returns:
> Index[1, 1], Size [3, 0], 0 pixels (I think it is ok to return an empty 
> region here as it indicates there are no interior points in the image)
> Index[0, 0], Size [1, 1], 1 pixel
> Index[4, 0], Size [1, 1], 1 pixel
> Index[1, 0], Size [3, 1], 3 pixels
> Index[1, 0], Size [3, 1], 3 pixels
> So 8 pixels are visited when there are only 5 pixels in the image.
> 
> -Kris
> 
> 
> 
> _______________________________________________
> 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://kitware.com/products/protraining.php
> 
> 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

========================================================
Bradley Lowekamp  
Medical Science and Computing for
Office of High Performance Computing and Communications
National Library of Medicine 
[email protected]



_______________________________________________
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://kitware.com/products/protraining.php

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

Reply via email to