如何保存修改后的3D原始文件?

时间:2016-02-11 18:24:33

标签: matlab image-processing import image-registration

我正在尝试在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);

1 个答案:

答案 0 :(得分:0)

您需要以读/写模式打开文件并在阅读后重绕它:

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);