itk deformable registration n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ITK Deformable Registration PowerPoint Presentation
Download Presentation
ITK Deformable Registration

Loading in 2 Seconds...

play fullscreen
1 / 50

ITK Deformable Registration - PowerPoint PPT Presentation


  • 390 Views
  • Uploaded on

ITK Deformable Registration. Demons Methods. Deformable Registration. Deformable Registration. Deformable Transforms. Deformable Transforms. Deformable Transformation. y. y. Transform. x. x. Fixed Image. Moving Image. Deformable Transformation. y. y. Transform. x. x.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ITK Deformable Registration' - bela


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
deformable registration
Deformable Registration

Deformable Registration

deformable transforms
Deformable Transforms

Deformable Transforms

deformable transformation
Deformable Transformation

y

y

Transform

x

x

Fixed Image

Moving Image

deformable transformation1
Deformable Transformation

y

y

Transform

x

x

Fixed Image

Moving Image

deformable transformation2
Deformable Transformation

y

y

Transform

x

x

Fixed Image

Moving Image

image resampling
Image Resampling

Interpolator

FixedImage

Resample

Image

Filter

MovingImage

DeformedImage

Transform

image resampling1
Image Resampling

Interpolator

FixedImage

Resample

Image

Filter

MovingImage

High Order

Polynomials

Splines

Explicit Vector

Field

Orthogonal

Basis

DeformedImage

Transform

kernel splines transforms
Kernel Splines Transforms

Target

Landmarks

Source

Landmarks

Interpolated

Values

Displacement

Vectors

kernel spline transforms
Kernel Spline Transforms
  • Thin Plates
  • Thin Plates R2 log R
  • Elastic Body
  • Elastic Body Reciprocal
  • Volume
kernel spline transforms1
Kernel Spline Transforms

InsightApplications / ThinPlateSplines

resampling kernel spline transform
Resampling: Kernel Spline Transform

#include "itkImage.h"

#include "itkResampleImageFilter.h"

#include "itkLinearInterpolateImageFunction.h"

#include "itkElasticBodySplineKernelTransform.h"

typedef itk::Image< char, 2 > ImageType;

ImageType::ConstPointer fixedImage = GetFixedImage();

ImageType::ConstPointer movingImage = GetMovingImage();

typedef itk::LinearInterpolateImageFunction< ImageType, double > InterpolatorType;

InterpolatorType::Pointer interpolator = InterpolatorType::New();

typedef itk::ResampleImageFilter< ImageType,

ImageType > FilterType;

FilterType::Pointer resampler = FilterType::New();

resampling kernel spline transform1
Resampling: Kernel Spline Transform

typedef itk::ElasticBodySplineKernelTransform< double, 2 > TransformType;

TransformType::Pointer transform = TransformType::New();

resampler->SetInterpolator( interpolator );

resampler->SetInput( movingImage );

ImageType::RegionTyperegion = fixedImage->GetBufferedRegion();

resampler->SetSize(region->GetSize() );

resampler->SetOutputStartIndex( region->GetIndex() );

resampler->SetOutputSpacing( fixedImage->GetSpacing() );

resampler->SetOutputOrigin( fixedImage->GetOrigin() );

resampling kernel spline transform2
Resampling: Kernel Spline Transform

resampler->SetTransform(transform );

typedef TransformType::PointSetType PointSetType;

PointSetType::PointersourceLandmarks = PointSetType::New();

PointSetType::PointertargetLandmarks = PointSetType::New();

transform->SetSourceLandmarks(sourceLandmarks );

transform->SetTargetLandmarks(targetLandmarks );

typedef PointSetType::PointsContainer PointsContainer;

PointsContainer::Pointer sources = sourceLandmarks->GetPoints();

PointsContainer::Pointer targets = targetLandmarks->GetPoints();

resampling kernel spline transform3
Resampling: Kernel Spline Transform

sources->Reserve( numberOfLandmarks );

targets->Reserve( numberOfLandmarks );

typedef PointSetType::PointType PointType;

PointTypesource;

PointTypetarget;

for( int i = 0; i < numberOfLandmarks; i++ )

{

inputFile >> source;

inputFile >> target;

sources->InsertElement(i, source );

targets->InsertElement(i, target );

}

transform->ComputeWMatrix();

resampler->Update(); // Finally !!

ImageType::ConstPointer deformedImage = resampler->GetOutput();

kernel spline transforms2
Kernel Spline Transforms

VolView : ITK Plugin

kernel spline transforms3
Kernel Spline Transforms

VolView : ITK Plugin

deformable transforms1
Deformable Transforms

Deformation Fields

deformation vector field
Deformation Vector Field

ParaView: http://www.paraview.org

warp image filter
Warp Image Filter

#include "itkImage.h"

#include "itkWarpImageFilter.h"

#include "itkLinearInterpolateImageFunction.h"

typedef itk::Image< char, 2 > ImageType;

ImageType::ConstPointer fixedImage = GetFixedImage();

ImageType::ConstPointer movingImage = GetMovingImage();

typedef itk::LinearInterpolateImageFunction< ImageType, double > InterpolatorType;

InterpolatorType::Pointer interpolator = InterpolatorType::New();

typedef itk::Vector< float, 2 > VectorType;

typedef itk::Image< VectorType , 2 > VectorFieldType;

VectorFieldType::PointervectorField = GetVectorField();

warp image filter1
Warp Image Filter

typedef itk::WarpImageFilter< ImageType,

ImageType,

VectorFieldType > WarpFilterType;

WarpFilterType::Pointer warpFilter = WarpFilterType::New();

warpFilter->SetInterpolator( interpolator );

warpFilter->SetInput( movingImage );

warpFilter->SetOutputSpacing( fixedImage->GetSpacing() );

warpFilter->SetOutputOrigin( fixedImage->GetOrigin() );

warpFilter->SetDeformationField( vectorField );

warpFilter->Update();

ImageType::ConstPointer deformedImage = warpFilter->GetOutput();

demons registration
Demons Registration

Demons Registration

demons registration1
Demons Registration

Demons is a Family of Algorithms

demons registration2
Demons Registration

Demons Type 0

demons registration type 0
Demons Registration: Type 0

Transform

Scene

Model

demons registration type 01
Demons Registration: Type 0

Transform

Scene

Gradients

Model

demons registration type 02
Demons Registration: Type 0

Transform

Scene

Forces

Model

demons registration3
Demons Registration

Demons Type 1

demons registration type 1
Demons Registration: Type 1

Transform

Scene

Vector Field

Model

demons registration type 11
Demons Registration: Type 1

Transform

Scene

Vector Field

Model

demons registration type 12
Demons Registration: Type 1

Transform

Scene

Vector Field

Model

demons registration type 13
Demons Registration: Type 1

Transform

Scene

Vector Field

Model

demons registration type 15
Demons Registration: Type 1

Current

Estimation

Intensity

Space

Gradient

Desired

Displacement

Scene

demons registration type 16
Demons Registration: Type 1

Transform

Scene

Vector Field

Model

demons registration type 18

Incremental Field

Next Field

Demons Registration: Type 1

Iterations

Previous Field

Gaussian

Smoothing

demons registration type 19
Demons Registration: Type 1

( s – m ) . Grad(s)

V =

Grad(s)2

( s – m ) . Grad(s)

V =

Grad(s)2 + (s-m)2

K

image registration framework
Image Registration Framework

FixedImage

Increment

Computation

PDE Solver

MovingImage

Interpolator

DeformationField

Transform

demons registration type 110
Demons Registration: Type 1

#include "itkImage.h"

#include "itkDemonsRegistrationFilter.h"

typedef itk::Image< char, 2 > ImageType;

ImageType::ConstPointer fixedImage = GetFixedImage();

ImageType::ConstPointer movingImage = GetMovingImage();

typedef itk::Vector< float, 2 > VectorType;

typedef itk::Image< VectorType , 2 > VectorFieldType;

typedef itk::DemonsRegistrationFilter<

ImageType,

ImageType,

VectorFieldType > DemonsType;

DemonsType::Pointer demons = DemonsType::New();

demons registration type 111
Demons Registration: Type 1

demons->SetFixedImage( fixedImage );

demons->SetMovingImage( movingImage );

demons->SetNumberOfIterations( 200 );

demons->SetStandardDeviations( 1.0 );

demons->Update();

ImageType::ConstPointer vectorField = demons->GetOutput();

requirements
Requirements

Fixed and Moving images should have the same intensity distribution !

eventual preprocessing
Eventual Preprocessing

- Histogram Matching Filter- Anisotropic Diffusion Filtering

image registration framework1
Image Registration Framework

FixedImage

Increment

Computation

PDE Solver

MovingImage

Interpolator

DeformationField

Transform

Resampler

MovingRegistered