
Implementation of local structure tensor and enhancement anisotropic diffusion filters in ITK
Please use this identifier to cite or link to this publication: http://hdl.handle.net/10380/3199 |
Published in The Insight Journal - 2010 July-December.
Submitted by Andinet Enquobahrie on 08-17-2010.
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
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
Code







Click here for more details.
Go here to access the main testing dashboard.






Reviews







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.

Comment by Aaccajohn Holland:

Comment by Aaccajohn Holland:

Comment by Aaccajohn Holland:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Tbootsbuy Vigorda:

Comment by Tbootsbuy Vigorda:

Comment by Tbootsbuy Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Aaccajohn Holland:

Comment by Aaccajohn Holland:

Comment by Aaccajohn Holland:

Comment by Lithrailesmered Olivier:

Comment by Lithrailesmered Olivier:

Comment by Lithrailesmered Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Itezziodiss Holland:

Comment by Tyamatriley Vigorda:

Comment by Ohnatowgabr Ken:

Comment by Ohnatowgabr Ken:

Comment by Ohnatowgabr Ken:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Lithrailesmered Olivier:

Comment by Lithrailesmered Olivier:

Comment by Lithrailesmered Olivier:

Comment by Lithrailesmered Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Redbergaaro Ken:

Comment by Redbergaaro Ken:

Comment by Redbergaaro Ken:

Comment by Htonhung Ken:

Comment by Htonhung Ken:

Comment by Htonhung Ken:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Sbeatsbeats Olivier:

Comment by Sbeatsbeats Olivier:

Comment by Sbeatsbeats Olivier:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Nhuskinsaran Ken:

Comment by Nhuskinsaran Ken:

Comment by Nhuskinsaran Ken:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Hcritchfijohn Holland:

Comment by Hcritchfijohn Holland:

Comment by Rankeurensuan Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Defeldanni Vigorda:

Comment by Ntlnoel Holland:

Comment by Ntlnoel Holland:

Comment by Ntlnoel Holland:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Defeldanni Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Pshopgolf Olivier:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Nhuskinsaran Ken:

Comment by Nhuskinsaran Ken:

Comment by Nhuskinsaran Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Ekjamerkend Ken:

Comment by Milbluemelsherr Ken:

Comment by Milbluemelsherr Ken:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Ohnatowgabr Ken:

Comment by Mwangmajor Holland:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Rsalbarrantravi Olivier:

Comment by Rsalbarrantravi Olivier:

Comment by Rsalbarrantravi Olivier:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Bridesmaidbride Ken:

Comment by Bridesmaidbride Ken:

Comment by Bridesmaidbride Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Ohnatowgabr Ken:

Comment by Ohnatowgabr Ken:

Comment by Ohnatowgabr Ken:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Defeldanni Vigorda:

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Mwangmajor Holland:

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Lheeralalkris Olivier:

Comment by Mwangmajor Holland:

Comment by :

Comment by :

Comment by :

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Tyamatriley Vigorda:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by Aollwaymyrt Vigorda:

Comment by :

Comment by :

Comment by :

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Rankeurensuan Ken:

Comment by Uejesusrodg Holland:

Comment by Uejesusrodg Holland:

Comment by Uejesusrodg Holland:

Comment by Eveningdiscount Ken:

Comment by Eveningdiscount Ken:

Comment by Eveningdiscount Ken:

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by Tsmccathedema Ken:

Comment by :

Comment by :

Comment by :

Comment by Umcglaufllind Olivier:

Comment by Umcglaufllind Olivier:

Comment by Umcglaufllind Olivier:

Comment by Umcglaufllind Olivier:

Comment by Umcglaufllind Olivier:

Comment by Umcglaufllind Olivier:

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by Elissierdeon Olivier:

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by Itezziodiss Holland:

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by :

Comment by Itezziodiss Holland:

Comment by Umcglaufllind Olivier:








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













Quick Comments
Resources
![]() |
|
Download All | |
Download Paper , View Paper | |
Download Source code | |
Github |
Statistics more
![]() |
|
Global rating: | ![]() ![]() ![]() ![]() ![]() |
Review rating: | ![]() ![]() ![]() ![]() ![]() |
Code rating: | ![]() ![]() ![]() ![]() ![]() |
Paper Quality: |
![]() ![]() |
1 comment |
Information more
![]() |
|
Categories: | Anisotropic blurring filters, Blurring filters, Filtering |
Keywords: | Noise filtering, Diffusion, Anisotropic, Tensor |
Toolkits: | ITK |
Export citation: |
Share
![]() |
Linked Publications more
![]() |
||
![]() by Hawley J., Johnson H.
|
||
![]() by Vercauteren T., Pennec X., Perchant A., Ayache N.
|
View license
Loading license...
Send a message to the author

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