An Adaptive Thresholding Image Filter

Kishore Mosaliganti1*,Arnaud Gelas,Sean Megason
1.Harvard Medical School
Abstract
An Adaptive Thresholding Image Filter

Abstract

An Insight Toolkit (ITK) algorithm for adaptively thresholding images is presented in this paper. Currently, the usage of thresholding methods in ITK has made use of global thresholds, confidence connected thresholds and neighborhood strategies. The current work extends these family of filters by setting thresholds adaptively in local image regions. The user is not required to specify seed regions apriori which greatly eases the task of automatic segmentation. The thresholds are determined using Otsu's minimization of between-class variances in local image regions that are selected randomly throughout the domain. Using non-uniformly sampled thresholds, a continuous function is reconstructed throughout the image domain using a B-Spline approximation algorithm. Hence, the image domain is adaptively sampled by making use of the reconstructed threshold function. Most imaging modalities introduce some intensity inhomogeneities that can be recovered by this method.

Keywords

adaptive thresholdingintensity inhomogeneity
Manuscript
Source Code and Data

Source Code and Data

codeAdaptiveOtsuThresholdImageFilter2D.cxx4.2 KBAdaptiveOtsuThresholdImageFilter3D.cxx4 KBBUILDCMakeCache.txt12.9 KBCMakeFilesCMakeCCompiler.cmake1023 BCMakeCXXCompiler.cmake1.1 KBCMakeDetermineCompilerABI_C.bin7.1 KBCMakeDetermineCompilerABI_CXX.bin7.3 KBCMakeDirectoryInformation.cmake2.4 KBCMakeOutput.log6 KBCMakeRuleHashes.txt1.7 KBCMakeSystem.cmake426 BCompilerIdCCMakeCCompilerId.c4.6 KBa.out6.5 KBCompilerIdCXXCMakeCXXCompilerId.cpp4.5 KBa.out6.9 KBContinuous.dirDependInfo.cmake240 Bbuild.make2.3 KBcmake_clean.cmake205 Bprogress.make1 BContinuousBuild.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake215 Bprogress.make1 BContinuousConfigure.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake223 Bprogress.make1 BContinuousCoverage.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake221 Bprogress.make1 BContinuousMemCheck.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake221 Bprogress.make1 BContinuousStart.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake215 Bprogress.make1 BContinuousSubmit.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake217 Bprogress.make1 BContinuousTest.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake213 Bprogress.make1 BContinuousUpdate.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake217 Bprogress.make1 BExperimental.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake209 Bprogress.make1 BExperimentalBuild.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake219 Bprogress.make1 BExperimentalConfigure.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake227 Bprogress.make1 BExperimentalCoverage.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake225 Bprogress.make1 BExperimentalMemCheck.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake225 Bprogress.make1 BExperimentalStart.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake219 Bprogress.make1 BExperimentalSubmit.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake221 Bprogress.make1 BExperimentalTest.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake217 Bprogress.make1 BExperimentalUpdate.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake221 Bprogress.make1 BMakefile.cmake3.1 KBMakefile246.6 KBNightly.dirDependInfo.cmake240 Bbuild.make2.3 KBcmake_clean.cmake199 Bprogress.make1 BNightlyBuild.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake209 Bprogress.make1 BNightlyConfigure.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake217 Bprogress.make1 BNightlyCoverage.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake215 Bprogress.make1 BNightlyMemCheck.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake215 Bprogress.make1 BNightlyMemoryCheck.dirDependInfo.cmake240 Bbuild.make2.5 KBcmake_clean.cmake221 Bprogress.make1 BNightlyStart.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake209 Bprogress.make1 BNightlySubmit.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake211 Bprogress.make1 BNightlyTest.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake207 Bprogress.make1 BNightlyUpdate.dirDependInfo.cmake240 Bbuild.make2.4 KBcmake_clean.cmake211 Bprogress.make1 BadaptiveOtsuThresh2D.dirAdaptiveOtsuThresholdImageFilter2D.o4.8 MBCXX.includecache79.5 KBDependInfo.cmake595 Bbuild.make6.1 KBcmake_clean.cmake324 Bdepend.internal19.7 KBdepend.make40.7 KBflags.make1.6 KBlink.txt583 Bprogress.make22 BadaptiveOtsuThresh3D.dirAdaptiveOtsuThresholdImageFilter3D.o4.8 MBCXX.includecache79.5 KBDependInfo.cmake595 Bbuild.make6.1 KBcmake_clean.cmake324 Bdepend.internal19.7 KBdepend.make40.7 KBflags.make1.6 KBlink.txt583 Bprogress.make22 Bcmake.check_cache85 Bprogress.make2 BCTestTestfile.cmake721 BDartConfiguration.tcl1.7 KBMakefile20 KBTestingTemporaryLastTest.log1 KBadaptiveOtsuThresh2D2.6 MBadaptiveOtsuThresh3D2.6 MBcmake_install.cmake1.7 KBoutput.png24.8 KBoutput2.png147.8 KBCMakeLists.txt1002 Binput.png100.3 KBitkAdaptiveOtsuThresholdImageFilter.h8.1 KBitkAdaptiveOtsuThresholdImageFilter.txx7.6 KB

Select a file to preview