Fusion of CT and MRI images, MI method
1 次查看(过去 30 天)
显示 更早的评论
I've got theoretical question about fusing medical images. After Matlab calculate mutual information between CT and MRI images what should be the next step? I know that calculated value of mutual information should be parameter in certain function that should be minimized, but I don't know any details. Could you tell me what should I do after calculating MI?
0 个评论
回答(3 个)
Jurgen
2013-1-14
编辑:Jurgen
2013-1-14
Same as least squares, transform 1 of the images according to your criteria (e.g. rotate) then re-calculate MI. Try various transforms according to your algorithm, then choose the transform that had the hightest MI to get an optimal match.
The joint entropy should be minimized to maximize the MI.
0 个评论
Jurgen
2013-1-16
编辑:Jurgen
2013-1-16
Alright, for a rotation and xtranslation example:
stepsize1 = pi/180; %e.g. 1 degree
stepsize2 = 1; %e.g. 1 pixel
rotations = 0:stepsize1:pi; %vector of angles
translationx = -10:stepsize2:10; %vec. of x-shifts
a = 0; %index row
b = 0; %index col
M = zeros(length(rotations),length(translationsx)); %stores MI scores
IM1 = rand(300); %reference image
IM2 = rand(300); %floating image
%---
% Lets say mytransformfcn is a function taking inputs for
% (rotation & xtranslation & image) and outputs a transformed image
%
% Lets also say MI is a function that calculates the mutual information
% (=scalar) between 2 images.
%---
for ii = rotations
a = a+1;
for jj = translationx
b = b+1;
newIM = mytransformfcn(ii,jj,IM2);
M(a,b) = MI(newIM,IM1);
end
end
%------find max MI + corresponding parameters
[mx idx] = max(M(:));
[angleidx transidx] = ind2sub(size(M),idx); clear idx;
max_angle = rotations(angleidx);
max_trans = translationx(transidx);
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!