最近需要将matlab下开发的算法转为C程序,其中第一步涉及文件的读写问题。matlab中dicom文件的读取非常方便,而C语言则比较麻烦。现在我的做法是用matlab将dicom文件转为二进制文件,然后用C语言的程序来读取。
一、matlab读取三维dicom图像并保存为二进制文件
% write_dicomefiles_to_binaryfiles
file_path_total = 'E:\项目\image segmentation\数据\Disc_Corrective';
case_listing = dir((file_path_total));
case_num = size(case_listing, 1) - 2;
save_path_name = 'F:\binary_files';
mkdir(save_path_name);
for i = 1:case_num;
file_name = case_listing(i+2,1).name;
disp(file_name);
V = ReadVolumeImage(fullfile(file_path_total, file_name));
V = int16(V);
binary_file_name = [save_path_name,'\',file_name,'.bin'];
fid = fopen(binary_file_name, 'w');
fwrite(fid, [size(V,1), size(V,2), size(V,3)], 'int16');
fclose(fid);
fid = fopen(binary_file_name, 'a');
fwrite(fid, V, 'int16');
fclose(f