image registration of two different 3D matrix in different size

9 ビュー (過去 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 Center および File ExchangeGeometric 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