[Insight-developers] GrayscaleReconstructionByDilatationImageFilter contributionand some related questions

Gaetan Lehmann gaetan.lehmann at jouy.inra.fr
Thu Jun 23 08:43:02 EDT 2005


Hi James,

Have you found time to look at this filter ?

Regards,

Gaetan

On Wed, 08 Jun 2005 19:02:27 +0200, Miller, James V (Research)  
<millerjv at crd.ge.com> wrote:

> Gaeten,
>
> Thanks for the filter.  I will take a look at it. With the timings you  
> are
> reporting, perhaps we do not need the original (threaded) implementation.
>
> It would be great to have an erosion version as well.  I'll probably ask
> you do that one after we smooth out any issues we have with the dilate
> case.
>
> Thanks again.
>
> Jim
>
>
>
> -----Original Message-----
> From: insight-developers-bounces+millerjv=crd.ge.com at itk.org
> [mailto:insight-developers-bounces+millerjv=crd.ge.com at itk.org]On Behalf
> Of Gaetan Lehmann
> Sent: Wednesday, June 08, 2005 11:22 AM
> To: insight-developers at itk.org
> Subject: [Insight-developers]
> GrayscaleReconstructionByDilatationImageFilter contributionand some
> related questions
>
>
>
> Hi,
>
> I have implemented a more efficient algorithm for reconstruction by
> dilatation. To give an idea of improvement, the same reconstruction on  
> one
> of my 3D image runs in 47 min with GrayscaleGeodesicDilateImageFilter
> iterated to stability, and in 23 sec with this filter.
>
> Code is attached. I hope you'll agree to add it in ITK :-)
>
> Implementation of this algorithm leads to some questions :
>
> + Is GrayscaleReconstructionByDilatationImageFilter a good name ? I find
> it very large...
>
> + should I test precondition (mask >= marker) or should I let user take
> care of that ?
>
> + to activate neighbors for the fully connected case, I'm using this code
> (oIt is a ShapedNeighborhoodIterator object) :
>      for (d=0; d < oIt.GetCenterNeighborhoodIndex()*2+1; ++d)
>        {
>          oIt.ActivateOffset(oIt.GetOffset(d));
> 	}
>      offset.Fill(0);
>      oIt.DeactivateOffset(offset);
> oIt.Size() method is protected, so to get the neighborhood size, I used
> oIt.GetCenterNeighborhoodIndex()*2+1, but I don't find it really clean !
> Is there a cleaner way to do that ? A oIt.ActivateAllNeighbors() method
> would be great :-)
>
> + with this algorithm, we don't need to have boundary condition. I don't
> find how to skip neighbors out of image, so I use a boundary condition
> with which I'm sure to never try to set pixel out of image, but I don't
> find this really clean. Is there a way to skip out of image neighbors
> during iteration ?
>
> + This algorithm is completed in 2 steps. First step is an iteration over
> each pixel of image; second step is an iteration over a number of pixels
> known a the end of the first step (and smaller than the number of pixel).
> I tried to use 2 progress reporter, but it doesn't work as I want... how
> can progress be managed in this case ?
>
> + this algorithm is far much efficient than geodesic dilatation iterated
> until stability, but is non threadable, and can't use face optimization.
> Should it replace GrayscaleGeodesicDilateImageFilter iterated to  
> stability
> in already existing filters which use it (HMaximaImageFilter,
> GrayscaleGrindPeakImageFilter, DoubleThresholdImageFilter and
> GrayscaleConnectedOpeningImageFilter) ? If yes, should we add
> FullyConnected attribute to all theses filters ?
>
> + Should FullyConnected attribute be added to
> GrayscaleGeodesicDilateImageFilter ?
>
> + I surely have done lots of english mistakes, even if I have only  
> written
> a few words :-(
> Can someone read and correct comments ?
>
> This algorithm can be easily applied to
> ReconstructionByErosionImageFilter. I'll be pleased to make it, once
> ReconstructionByDilatationImageFilter will be totally clean :-)
>
> Regards,
>
> Gaetan
>



-- 
Gaetan Lehmann <gaetan.lehmann at jouy.inra.fr>
Tel: +33 1 34 65 29 66
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
Web: http://voxel.jouy.inra.fr


More information about the Insight-developers mailing list