Matlab将图像数据写入二进制文件

时间:2011-03-07 22:14:17

标签: matlab

我对Matlab不是很擅长,我需要以下代码的帮助。

我有一组图像中的图像数据,我想将它们保存到二进制文件中,同时保存一个文件签名,显示数据是如何保存在文件中的。

例如,假设我有一个被分割的图像,据说它由4行和4列组成,因此图像由16个较小的图像组成。这些较小图像的图像数据保存在以下结构中:

data = struct('imageTitleFinal', {}, 'imageDataFinal', {});

for rows = 1:numberOfRows
        for columns = 1:numberOfColumns
            data(rows,columns).imageTitleFinal = currentTile;
            data(rows,columns).imageDataFinal = currentStructure(rows,columns).imageData;
        end
end

我希望能够将每个较小图像的图像数据写入二进制文件,并能够区分文件中的图像数据集。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您因任何原因无法写入二进制文件,则可能会为此数据创建自己的“标题”。

为每个“较小的图像”写入固定数量的元数据,此数据应具有帮助您解析图像数据的所有信息。一个简单的方法是:

- 我假设你的'title'是一个char数组 - 我假设你的数据文件是一个双数组 - '|'只是一个分隔符。

|一个uint32,其中包含标题中的字符数|您的标题数据写为字符|带有数据中双精度数的uint32 |所有数据都写为双精度数|

航空代码:

fopen in append mode
fwrite(fid, numel(title), 'uint32');
fwrite(fid, title,'char'); %assuming ASCII char set
fwrite(fid, numel(data), 'uint32');
fwrite(fid, data, 'double);

如果“较小的图片”不具有统一的尺寸,您可以考虑添加更多“元数据”,例如数据的大小。