image registration of two different 3D matrix in different size

조회 수: 7 (최근 30일)
Guanfeng Gao
Guanfeng Gao 2015년 8월 7일
답변: JD Peiffer 2019년 6월 14일
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?

답변 (1개)

JD Peiffer
JD Peiffer 2019년 6월 14일
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.

카테고리

Help CenterFile Exchange에서 Geometric Transformation and Image Registration에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by