Implementation of local structure tensor and enhancement anisotropic diffusion filters in ITK
logo

Please use this identifier to cite or link to this publication: http://hdl.handle.net/10380/3199
This paper describes implementation of local structure tensor and anisotropic enhancement diffusion filters using the Insight Toolkit. The anisotropic diffusion filters are implemented using ITK's finite difference solver framework. The filters are used to implement the 3D edge-enhancing diffusion ( EED), coherence-enhancing diffusion (CED) and hybrid diffusion with continuous switch(HDCS) noise filtering algorithms described in Mendrik et al[1].

The most up-to-date version of the code presented in this paper is distributed with the TubeTK project:
http://public.kitware.com/Wiki/TubeTK
Data
minus 3 Datasets (298Kb)
Code
minus Automatic Testing Results by Insight-Journal Dashboard on Tue Jan 29 16:07:53 2013 for revision #3
starstarstarstarstar expertise: 5 sensitivity: 3
yellow This project had trouble building: 13 errors, 3 warnings
Click here for more details.

Go here to access the main testing dashboard.
plus Automatic Testing Results by Insight-Journal Dashboard on Thu Aug 19 03:36:47 2010 for revision #1
starstarstarstarstar expertise: 5 sensitivity: 3.3

Reviews
minus Working ITK3 and ITK4 version Anisotropic Diffusion Filters by Adrienne Mendrik on 2013-12-18 09:54:30 for revision #3
starstarstarstarstar expertise: 5 sensitivity: 4
yellow
Summary:

I made some more changes to the ITK3 version (AnisotropicFilters-itk3.20.0) of the anisotropic diffusion filters  and also adjusted the code to work in ITK4 (AnisotropicFilters-itk4.4.2). I think they work properly now.


 

review AnisotropicDiffusionFilters.zip (158Kb)


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Lithrailesmered Olivier: yellow


Comment by Lithrailesmered Olivier: yellow


Comment by Lithrailesmered Olivier: yellow


Comment by Lithrailesmered Olivier: yellow


Comment by Lheeralalkris Olivier: yellow


Comment by Lheeralalkris Olivier: yellow


Comment by Redbergaaro Ken: yellow


Comment by Redbergaaro Ken: yellow


Comment by Redbergaaro Ken: yellow


Comment by Htonhung Ken: yellow


Comment by Htonhung Ken: yellow


Comment by Htonhung Ken: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Sbeatsbeats Olivier: yellow


Comment by Sbeatsbeats Olivier: yellow


Comment by Sbeatsbeats Olivier: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Hcritchfijohn Holland: yellow


Comment by Hcritchfijohn Holland: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Ntlnoel Holland: yellow


Comment by Ntlnoel Holland: yellow


Comment by Ntlnoel Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Pshopgolf Olivier: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Nhuskinsaran Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Ekjamerkend Ken: yellow


Comment by Milbluemelsherr Ken: yellow


Comment by Milbluemelsherr Ken: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Ohnatowgabr Ken: yellow


Comment by Mwangmajor Holland: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Rsalbarrantravi Olivier: yellow


Comment by Rsalbarrantravi Olivier: yellow


Comment by Rsalbarrantravi Olivier: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Bridesmaidbride Ken: yellow


Comment by Bridesmaidbride Ken: yellow


Comment by Bridesmaidbride Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Ohnatowgabr Ken: yellow


Comment by Ohnatowgabr Ken: yellow


Comment by Ohnatowgabr Ken: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Defeldanni Vigorda: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Mwangmajor Holland: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Lheeralalkris Olivier: yellow


Comment by Lheeralalkris Olivier: yellow


Comment by Lheeralalkris Olivier: yellow


Comment by Mwangmajor Holland: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Tyamatriley Vigorda: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by Aollwaymyrt Vigorda: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Rankeurensuan Ken: yellow


Comment by Uejesusrodg Holland: yellow


Comment by Uejesusrodg Holland: yellow


Comment by Uejesusrodg Holland: yellow


Comment by Eveningdiscount Ken: yellow


Comment by Eveningdiscount Ken: yellow


Comment by Eveningdiscount Ken: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by Tsmccathedema Ken: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Umcglaufllind Olivier: yellow


Comment by Umcglaufllind Olivier: yellow


Comment by Umcglaufllind Olivier: yellow


Comment by Umcglaufllind Olivier: yellow


Comment by Umcglaufllind Olivier: yellow


Comment by Umcglaufllind Olivier: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by Elissierdeon Olivier: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Itezziodiss Holland: yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by : yellow


Comment by Itezziodiss Holland: yellow


Comment by Umcglaufllind Olivier: yellow

minus Adjusted code by Adriënne Mendrik on 2012-09-27 04:39:14 for revision #3
starstarstarstarstar expertise: 5 sensitivity: 4
yellow
Summary:

I adjusted the itk code, such that it gives similar results as my implementation of the HDCS, EED and CED filter that I used for my paper Mendrik et al [1].


Below a list of changes:



  • Parameter rho added to files (used to smooth structure tensor): itkAnisotropicHybridDiffusionImageFilterTest, itkAnisotropicHybridDiffusionImageFilter (.h and .txx), itkStructureTensorRecursiveGaussianImageFilter (.h and .txx), itkAnisotropicCoherenceEnhancingDiffusionImageFilterTest, itkAnisotropicCoherenceEnhancingDiffusionImageFilter (.h and .txx)

  • Smoothing of the structure tensor components added by Fethallah only smoothed in one direction, which is incorrect. Therefore I changed the smoothing filter to "DiscreteGaussianImageFilter" which smoothes in all three directions (isotropic), otherwise filtering results are incorrect. Probably another filter can also be used, but just make sure that filtering is performed in all three directions using rho as the scale parameter. Changed in: itkStructureTensorRecursiveGaussianImageFilter

  • Text adjusted in itkAnisotropicCoherenceEnhancingDiffusionImageFilterTest: Edge_Enhanced_Output_Image --> Coherence_Enhanced_Output_Image

  • The third eigenvalue of the diffusion tensor in the CED filter should be set according to the paper of Weickert. In the hybrid filter I used an alternative equation, but in my opinion the CED filter should be implemented according to the original version of CED by Weickert: Joachim Weickert, "Coherence-Enhancing Diffusion Filtering", International Journal of Computer Vision 31(2/3), 111–127 (1999). So I changed the setting of lambda3 in the file: itkAnisotropicCoherenceEnhancingDiffusionImageFilter.txx

  • Correct sorting of the eigenvectors in "UpdateDiffusionTensorImage()" of all three filters: itkAnisotropicCoherenceEnhancingDiffusionImageFilter.txx, itkAnisotropicEdgeEnhancementDiffusionImageFilter.txx, itkAnisotropicHybridDiffusionImageFilter.txx

review AdjustedAnDiffCode.zip (24Kb)

plus Error: Eigenvectors of the structure tensor are not sorted! by Adriënne Mendrik on 2011-12-09 06:20:22 for revision #1
starstarstarstarstar expertise: 5 sensitivity: 4.3
plus A couple of errors by Fethallah Benmansour on 2011-01-21 11:58:22 for revision #1
starstarstarstarstar expertise: 5 sensitivity: 2.7
Add a new review
Quick Comments
Comment by Andinet Enquobahrie yellow
Adrienne and Fethallah,

Thanks for your feedback. We have uploaded a revised version of the source code incorporating your bug fixes.

Let us know if you have any more questions.

Andinet


Resources
backyellow
Download All
Download Paper , View Paper
Download Source code
Github

Statistics more
backyellow
Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating: starstarstarstarstar
Paper Quality: plus minus
1 comment

Information more
backyellow
Categories: Anisotropic blurring filters, Blurring filters, Filtering
Keywords: Noise filtering, Diffusion, Anisotropic, Tensor
Toolkits: ITK
Export citation:

Share
backyellow
Share

Linked Publications more
backyellow
Diffeomorphic Demons Using ITK's Finite Difference Solver Hierarchy Diffeomorphic Demons Using ITK's Finite Difference Solver Hierarchy
by Vercauteren T., Pennec X., Perchant A., Ayache N.
Importing Contours from DICOM-RT Structure Sets Importing Contours from DICOM-RT Structure Sets
by Dowling J., Malaterre M., Greer P.B., Salvado O.

View license
Loading license...

Send a message to the author
main_flat
Powered by Midas