我对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
我希望能够将每个较小图像的图像数据写入二进制文件,并能够区分文件中的图像数据集。任何帮助将不胜感激。
答案 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);
如果“较小的图片”不具有统一的尺寸,您可以考虑添加更多“元数据”,例如数据的大小。