[MINC-users] voxel_loop-like hard-disk access for arbitrary voxel positions

Andrew Janke andrew_janke@iinet.net.au
Mon Nov 22 08:25:03 2004


On Wed, 10 Nov 2004, Michel Audette wrote:

Michel, I have been giving this a bit of thought over the past few days and here 
is what I can come up with...

> Are you familiar with Level-set and Fast Marching Level-Set surface models?

Yup.

> Basically, it involves an evolving front, and I'm trying to figure out a way
> to implement something like this with voxel_loop-like management (i.e.: use
> as little RAM as possible). In other words, it does not process the whole
> volume at once, but iterates an evolving surface based on a moving shell
> surrounding the surface at the previous simulated time iteration. Wondering
> if this is feasible under MINC, in a manner comparable to voxel_loop... In
> other words, I need to be able to access specific voxels of a given volume
> on disk....

ok...

> Can anyone comment? I need to process MR volumes that have been resampled to
> CT-density, actually greater than normal CT-density, in the sense that I
> first resample CT data to be isotropic, typically .5mm resolution, and do
> the same for MR. I need to do this with a 32-bit Linux machine, hence the
> problem.

The best solution I can think of is the data blocking features of HDF (minc 2.0) 
I don't know just how much of this has been implmented in minc 2.0 as of yet, 
but at least you could load a set of sub-blocks using a prioritised list of 
local neighbouring blocks.

There is no sensical way that I can think of where you are going to be able to 
prdict where your front will evolve to and thus approaches like voxel_loop are 
doomed to fail IMHO. ;(

But given that you are iterating, (not recursing) what is the possibility that 
you could evolve your front with sub-blocks of the volume, and write your 
results out as you go? The simplest approach would be to take the volume in 8 
chunks to begin with first.



--
Andrew Janke (andrew_janke@iinet.net DOT au || www.cmr.uq.edu.au/~rotor) 
Australia->Brisbane            H: +61 7 3390 6332  || M: +61 4 2138 8581