[Insight-users] histology stack registration
Dan Mueller
dan.muel at gmail.com
Fri Jul 1 02:42:56 EDT 2011
Hi Isaiah,
I have used elastix for histology stack registration:
http://elastix.isi.uu.nl/
It does not support this "out-of-the-box", but it has all the required
components which you can assemble with as simple control program
calling the elastix executable.
In theory, ITK also has all required components, but you must have a
good knowledge of C++ (or one of the wrapped languages e.g. python).
The general approach I recommend is as follows:
(1) downsample all images
(I use a similar size to you, namely 2K x 2K images)
(2) choose a fixed image
(I would suggest either the first slice or somewhere in the middle of the stack)
(3) for each image next to the previously aligned slice
(a) set the initial transform to the transform of the previously
aligned slice
if the previously aligned slice is the fixed image, use the
identity transform
(b) execute the registration
(c) apply the resultant transform to this slice,
remember the transform when aligning the next slice,
write the transform to disk
(d) repeat until no more slices
(at this point you have a transform per image)
(4) apply the corresponding transform to each high-resolution image
(you will need to employ either streaming (not sure if this is works),
or use a x64 machine with lots of RAM)
I should point out that I have never done step 4, as I always apply
the transform on-the-fly when viewing, see here:
http://dx.doi.org/10.1016/j.compmedimag.2011.06.006
For step 3b I used an elastix parameters file similar to below:
(FixedInternalImagePixelType "float")
(MovingInternalImagePixelType "float")
(FixedImageDimension 2)
(MovingImageDimension 2)
(UseDirectionCosines "false")
(HowToCombineTransforms "Compose")
(DefaultPixelValue 0.0)
(WriteResultImage "true")
(ResultImagePixelType "float")
(ResultImageFormat "mha")
(Resampler "DefaultResampler")
(FixedImagePyramid "FixedSmoothingImagePyramid")
(MovingImagePyramid "MovingSmoothingImagePyramid")
(NumberOfResolutions 5)
(Registration "MultiMetricMultiResolutionRegistration")
(Transform "BSplineTransform")
(AutomaticScalesEstimation "true")
(AutomaticTransformInitialization "true")
(FinalGridSpacingInVoxels 8)
(Metric "NormalizedCorrelation" "TransformRigidityPenalty")
(Optimizer "AdaptiveStochasticGradientDescent")
(MaximumNumberOfIterations 400)
(Interpolator "Linear")
(ResampleInterpolator "FinalLinear")
(ImageSampler "Random")
Good luck!
Regards,
Dan Mueller
Senior Software Designer, Ph.D.
Philips Digital Pathology, Healthcare Incubator
Email: dan[dot]mueller[at]philips[dot]com
Web: http://www.philips.com/digitalpathology
On 29 June 2011 21:13, Isaiah Norton <isaiah.norton at gmail.com> wrote:
> Hi,
>
> I'm looking for a tool to co-register a stack of microscope histology
> sections to create a 3D volume. Sections are sliced roughly parallel, taken
> in pairs with a 10 micron gap, followed by ~70-100 micron gap between each
> pair, and H&E stained. The raw images are ~28k*28k pixels and ~150mb but I
> have down-sample to roughly 2500*2500 for the registration step.
>
> I've tried the register_pair/list tool in Farsight Toolkit but it threw some
> itk memory exceptions, and in any case it seems geared to build adjacency
> mosaics rather than z-stacks. Also looked at GoFigure2 and V3D but didn't
> see this functionality in the release builds (apologies if I missed
> something, please let me know).
>
> I noticed this discussion a while back:
> http://itk-insight-users.2283740.n2.nabble.com/Constructing-3D-stack-from-2D-image-series-with-registration-td3832165.html
>
> Is this idea implemented anywhere now? I'd appreciate any suggestions, and
> am happy to build from source...
>
> Thanks,
> -Isaiah
More information about the Insight-users
mailing list