我有一个双值矩阵(例如,22.51,23.15,...),其中每个值对应一个温度。因此,矩阵是热图像。热像仪的软件产生一种奇怪的输出格式,只有这个软件才能读取。
因此,我有两个问题:
谢谢!
答案 0 :(得分:1)
此类情况的一个选项是使用FITS而不是标准图像格式。 MATLAB支持读取(fitsread
)和编写(fitswrite
)这些文件,而许多其他程序(如ImageJ或GIMP)可以处理(大多数).fits文件。
在最基本的层面:
I = rand(100) + 20; %100x100 matrix of doubles
fitswrite(I,'test.fits');
I2 = fitsread('test.fits'); % returns the 100 x 100 matrix of doubles
然而,我个人的偏好是将两个功能分开 - 准确存储数据,并存储易于查看的图像。您可以使用sprintf
构建文件名,也可以只使用简单的字符串连接。可能使用fileparts
去除原始数据文件的名称,减去扩展名,然后保存更易于阅读的(.csv)数据版本和更容易查看的图像版本。
[path, name, ext] = fileparts('my_data_file.dat');
% returns name = 'my_data_file'
% if path is important, use "fullfile" function instead of below lines
fname = [name,'.csv']; % or however you store data
iname = [name, '.png']; % or preferred image format