У меня есть два 3D-изображения МРТ, эталонное (img1) и целевое (img2), и я хочу зарегистрировать img2 в img1. Я использовал жесткую регистрацию изображений MATLAB, и она не работает корректно в моем наборе данных. Однако, когда я выбираю интересующую область в центре изображений (вырезая img1 и img2 и получая img1L и img2L, которые меньше, чем исходные изображения), регистрация в этом регионе работает хорошо. Затем я пытаюсь применить то же преобразование к исходному изображению, но не получаю правильных результатов. Вот мой код:
[optimizer, metric] = imregconfig('monomodal');
optimizer.MaximumIterations = 300;
tformL = imregtform(img2L,img1L,'rigid',optimizer,metric);
tform = imregtform(img2L,img1L,'rigid',optimizer,metric);
tform.T = tformL.T;
R1 = imref3D(size(mag1));
R2 = imref3d(size(mag2));
mag2r = imwarp(mag2,R2,tform,'OutputView',R1,'SmoothEdges',true);
Я думаю, что проблема с R1 и R2 и источником регистрации, но я не могу это исправить. Буду признателен за любую помощь.