[Insight-users] variable voxel spacing and anisotropic diffusion

Mauro Maiorca mauromaiorca at gmail.com
Sun Apr 3 00:36:20 EDT 2011


nobody? :-(

what I've done so far is transforming the input image with variable
voxel spacing into one with constant voxel spacing (by using
interpolation), then applying anisotropic diffusion, finally
interpolating back the image to the original (variable) spacing. Well,
it works, and I can apply any filter without worrying about the
variable voxel spacing.

However, I'm afraid this (re)interpolation trick might affect the
final quality of the image, furthermore I'm just interested to few
anisotropic diffusion filters. Thus, I'm still looking forward to find
a way to modify the anisotropic diffusion filters already implemented
in ITK in order to tackle the problem without using interpolation. Itk
source code is well documented (thanks for that), but it's a quite big
package, and it would be great to have directions regarding where in
the code I should get my hands dirty on and what's the cleanest way to
do it. I reckon itkFiniteDifferenceImageFilter.txx is one of the first
target files I should inspect, and I guess at some stage I should play
with the function
void FiniteDifferenceImageFilter<TI,TO>::initializeFunctionCoefficients()
I would like to treat the "voxel spacing mask" as image, something like that:
typedef itk::Image<double, Dimension> variableVoxelSpacingMaskType;
variableVoxelSpaceMaskType m_variableVoxelSpaceMask;
I guess I have also to ask the user to insert the voxel space "mask"
with a sort of SetVoxelSpaceMask() somewhere.

Unfortunately, as you can see I have only fragmentary ideas of
how/where I should modify the code, so any input would be appreciated.
Since I haven't received any answer so far, please let me know whether
I didn't explain my problem clearly enough, or maybe whether you think
it's too complicate to be easily solved within the ITK toolkit.

Regards,
Mauro


On Mon, Mar 28, 2011 at 6:57 PM, Mauro Maiorca <mauromaiorca at gmail.com> wrote:
> Hello Itk-users,
>
> I'm successfully using anisotropic diffusion filters on n-dimension volumes.
> Unfortunately, many of my volumes don't have uniform voxel spacing. In
> fact, in the simplest 3D scenario (n=3, x1=x, x2=y, x3=z) I can
> summarise the voxel spacing within my images with a function f:R^3->R,
> where df/dx=0, df/dy=0 df/dz=k (k constant). I was wondering whether
> there is a way to apply diffusion parameters independently for each
> dimension, or according to some sort of mask.
> If negative, can you please point me to the quickest/cleanest way to
> implement it within ITK (i.e. which files I need to modify, etc)? I'm
> more then happy to share the code (InsightJournal) if other people
> might be interested on this.
>
> thanks a lot,
> Mauro
>


More information about the Insight-users mailing list