如何保存修改后的 3D 原始文件?
how to save a modified 3D raw file?
我正在尝试在 Matlab 中读取原始文件(float64,这是一个变形矢量场,即图像配准的结果),具有 3 个维度 304 x 224 x 52。
然后我想更改此文件中的所有值,将它们除以 10。
之后我想再次将修改后的文件保存为具有相同规格的原始文件。我写了一个代码,但我无法保存文件。我想以原始格式再次保存它。我想我可能会遗漏一些东西。我是 Matlab 的初学者,非常感谢您的帮助和耐心等待。谢谢。
fid = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw') dvf = fread(fid);
length(div)
div = (0.1) * ones(42491904,1); dvf_cm = dvf.* div;
count = fwrite(fid,dvf_cm,'float64');
fclose(fid);
您需要以read/write模式打开文件,阅读后倒带:
fid = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw', 'r+');
data = fread(fid, Inf, 'float64')/10;
frewind(fid);
count = fwrite(fid, data, 'float64');
fclose(fid);
我正在尝试在 Matlab 中读取原始文件(float64,这是一个变形矢量场,即图像配准的结果),具有 3 个维度 304 x 224 x 52。
然后我想更改此文件中的所有值,将它们除以 10。
之后我想再次将修改后的文件保存为具有相同规格的原始文件。我写了一个代码,但我无法保存文件。我想以原始格式再次保存它。我想我可能会遗漏一些东西。我是 Matlab 的初学者,非常感谢您的帮助和耐心等待。谢谢。
fid = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw') dvf = fread(fid);
length(div)
div = (0.1) * ones(42491904,1); dvf_cm = dvf.* div;
count = fwrite(fid,dvf_cm,'float64');
fclose(fid);
您需要以read/write模式打开文件,阅读后倒带:
fid = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw', 'r+');
data = fread(fid, Inf, 'float64')/10;
frewind(fid);
count = fwrite(fid, data, 'float64');
fclose(fid);