image registration of two different 3D matrix in different size

9 visualizaciones (últimos 30 días)
Guanfeng Gao
Guanfeng Gao el 7 de Ag. de 2015
Respondida: JD Peiffer el 14 de Jun. de 2019
I have two image matrix. One is from MRI, and another is from PET. And they are in the different size, which means the pixel size and the slice thickness are different. Is there any way for me to do the registration? I try the imregister, but it does not work.
This is the image before the Registration:
This is the image after the registration:
Does anyone any hint to do this?

Respuestas (1)

JD Peiffer
JD Peiffer el 14 de Jun. de 2019
I've had some good results with this. The imwarp function seems capable of resizing the transformed image. I am not sure how it does so, and would like to know more. This code was done to register SPECT to MRI images, but I think multimodal would be good for your scans also.
%% SET PARAMETERS
[optimizer, metric] = imregconfig('multimodal');
optimizer.InitialRadius = 0.002;
optimizer.Epsilon = 1.0e-6;
optimizer.GrowthFactor = 1.025;
optimizer.MaximumIterations = 500;
%% PERFORM REGISTRATION
tform= imregtform(MOVING, STATIONARY, 'affine', optimizer, metric); %Defines the Transform
movingRegistered = imwarp(MOVING,tform,'OutputView',imref3d(size(STATIONARY))); %Defines the output matrix to be the size of the stationary one and performs the transform.

Categorías

Más información sobre Geometric Transformation and Image Registration en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by