Skip to content

InsightSoftwareConsortium/ITKTotalVariation

Repository files navigation

ITKTotalVariation

PyPI License

Overview

TotalVariation algorithms. itkProxTVImageFilter provides a wrap for the external project proxTV: https://github.com/albarji/proxTV

ITK provides wrapping for Windows, macOS and Linux:

import itk
Dimension = 3
I = itk.Image[itk.F, Dimension]
reader = itk.ImageFileReader[I].New(FileName=file_name)
reader.Update()
image = reader.GetOutput()
tv = itk.ProxTVImageFilter[I, I].New()
tv.SetInput(image)
tv.SetMaximumNumberOfIterations(10)
tv.SetWeights(100)
tv.Update()
output_file_name="/tmp/tvout.nrrd"
itk.imwrite(tv.GetOutput(), output_file_name)

Examples of 3D image denoised

Original:

https://user-images.githubusercontent.com/3021667/55841022-95524a00-5afb-11e9-92f1-3743c4ddbf4c.png

TotalVariation denoised:

https://user-images.githubusercontent.com/3021667/55841021-94b9b380-5afb-11e9-9961-37072274bd68.png

Original:

https://user-images.githubusercontent.com/3021667/38002434-9fc35d32-3232-11e8-8bfc-a7d9ce6888c7.png

Denoised:

https://user-images.githubusercontent.com/3021667/38002451-b87bed62-3232-11e8-814b-50e8fb0f79cb.png

Installation

To install the binary Python packages:

python -m pip install itk-totalvariation

Since ITK 5.0.0, this module is available in the ITK source tree as a remote module. To enable it, set:

Module_TotalVariation:BOOL=ON

in ITK's CMake build configuration.

License

This software is distributed under the Apache 2.0 license. Please see the LICENSE file for details.