MATLAB生成三维体数据


by HPC_ZY


之前写了医学影像三维重建的文章,许多小伙伴都来问测试数据的model是怎么生成的。这个其实是MATLAB基础,但由于询问的人太多,就在这里统一回复了。


一、三维体数据的生成

其实三维体数据本质就是三维矩阵、三维数组,最简单的就是把值一个个存进去。

% M,N,D 是长宽高,请按照你自己的数据设置
model = zeros(M,N,D);
for i = 1:M
	for j = 1:N
		for k = 1:D
		% ai是某个想设定的值,请用具体值代替此处的ai
		model(i,j,k) = ai; 
		end
	end
end

二、多二维矩阵生成三维体数据

  1. 赋值法
% M,N,D 是长宽高,请按照你自己的数据设置
model = zeros(M,N,D);
for k = 1:D
	% Ai是某个想存入的二维矩阵,请用具体矩阵代替此处的Ai
	% 每个Ai尺寸必须一致
	model(:,:,k) = Ai; 
end
  1. 拼接法
% Ai是某个想存入的二维矩阵,请用具体矩阵代替此处的Ai 
% 每个Ai尺寸必须一致
model = cat(3,A1,A2,...,Ai,...,An); 

三、多二维图像生成三维体数据

假设你有很多二维切片图像,想生成三维体数据。

% M,N,D 是长宽高,请按照你自己的数据设置
model = zeros(M,N,D); 
for k = 1:D
	% 请使用你自己的图片名,替代此处的filename
	im = imread(filename); 
	% 如果你的图像是彩色时,需要加入下一句;如不是,请删去。
	im= rgb2gray(im); 
	model(:,:,k) = im; 
end

关于如何在循环中修改文件名(filename)方法,假如我的图像命名为
test1.jpg
test2.jpg

test86.jpg.
test87.jpg
则方法如下:

% 此处的k为上述代码中的迭代变量
filename = ['test',num2str(k),'.jpg'];

四、DICOM序列生成三维体数据

该部分将在答辩结束后公开(预计2020.6.20)。

五、其他

当然有时你也能直接获得三维体数据(别人给的,或网上下载的)。
此时只需要根据该数据的类型,使用相应的读取方法(百度)即可,如:
.mat
.vtk
.raw

猜你喜欢

转载自blog.csdn.net/xsz591541060/article/details/106228661