我正在尝试从.jsf文件打开并加载数据以输出图像。这是我第一次尝试读取这样的文件,并且不确定我会以正确的方式使用它。任何指导将不胜感激
从我所看到的,我需要使用'rb'
打开二进制文件,然后使用'l'
打开低端字节序的.jsf文件。我设置了一个简单的检查来查看文件是否正确打开,但是,在读取数据时,我认为我没有正确处理它。目标是让程序跳过文件中的前256个值以获取二进制数据。到达那里后,我想读取数据并从中生成图像。
数据的创建者告诉我,跳过16个字节的标头和240个字节的标头,然后以低字节序格式读取二进制数据(8个最低有效位是每个16位字的第一个字节,即8个最高有效位是每个16位字的第2个字节),如果要转换为浮点数或32位整数,则针对数据类型适当地处理符号扩展位。一旦具有16位整数,就需要通过pow(2,-weightingFactor)缩放每个记录的全部,其中weightingFactor是240字节标题中的一个字段。
clear
clc
fid= fopen('20160503.14323.jsf', 'rb', 'l')
if fid == -1
error('File is not opened');
end
data=[];
record=0;
% X= fseek( fid, 256, 'cof') #Need to figure out how to use fseek every line
while ~feof(fid)
data = fread(fid,1,'uint16');
image(data)
record=record+1;
end
fclose(fid);