Matlab 白质纤维跟踪的优化算法
实际上,我使用MATLAB代码来实现我的工作,总结如下: 我使用了一个应用贝叶斯方法的程序来解决光纤跟踪问题,我在加载数据集时遇到了一个问题,它是医学图像。我需要任何提示来帮助我打开此数据集以继续我的工作。以下代码显示了load dataset函数:Matlab 白质纤维跟踪的优化算法,matlab,Matlab,实际上,我使用MATLAB代码来实现我的工作,总结如下: 我使用了一个应用贝叶斯方法的程序来解决光纤跟踪问题,我在加载数据集时遇到了一个问题,它是医学图像。我需要任何提示来帮助我打开此数据集以继续我的工作。以下代码显示了load dataset函数: function data = Load_DMRI_Data(dataset) %加载扩散张量MRI数据并返回 %结构以及渐变和b值。 %数据必须存储在数据结构中,以便进一步 %处理,请参阅代码。 %梯度存储为(3xg)矩阵,其中g是 %获取的D
function data = Load_DMRI_Data(dataset)
%加载扩散张量MRI数据并返回
%结构以及渐变和b值。
%数据必须存储在数据结构中,以便进一步
%处理,请参阅代码。
%梯度存储为(3xg)矩阵,其中g是
%获取的DWI体积数(包括b=0个)。
%b值存储在相应的(1xg)向量中
如果strcmp(数据集,'gordon')
elseif strcmp(数据集,'pc')
readdir='c:\Work\DiffusionData\';
强度=零(256256,1,32);
对于g=1:32
对于切片=16:16%,使用切片16作为测试切片
fid=fopen(sprintf('%sI.%03d',readdir,(g-1)*31+片),'r','ieee-be');
im=fread(fid,'int16');
im=im(end-256^2+1:end)
结束
数据集的网站:
readdir = '/projects/lmi/data/diffusion/gk-3t/041020-02156-bvalexpr/data/003/';
intensity = zeros(256,256,31,32);
for g = 1:32
for slice = 1:31
fid = fopen(sprintf('%sI.%03d',readdir,(g-1)*31+slice),'r');
im = fread(fid,'int16');
im = im(end-256^2+1:end);
intensity(:,:,slice,g) = reshape(im,[256 256])';
fclose(fid);
end
end
G = load('gradients.mat');
G = [[1;1;1] G.g]; % Add arbitrary gradient direction for b=0
b = [0 1000*ones(1,31)];
data = struct('intensity',intensity,'G',G,'b',b,'FOV',240,'SliceThickness',4);
intensity(:,:,slice-15,g) = reshape(im,[256 256])';
fclose(fid);
end
end
G = load(sprintf('%sgradients.mat',readdir));
G = [[1;1;1] G.g]; % Add arbitrary gradient direction for b=0
b = [0 1000*ones(1,31)]; % b-values
data = struct('intensity',intensity,'G',G,'b',b);