46 lines
1.5 KiB
Matlab
46 lines
1.5 KiB
Matlab
function [data,comments,transform] = ReaderSP2(filename)
|
|
data = struct('image',[], ...
|
|
'raw', [], ... % raw image without correction
|
|
'erange',[], ... % in the format of [EkinStart, EkinEnd]
|
|
'arange',[], ... % in the format of [aStart, aEnd]
|
|
'edelta',[], ... % in the format of [EkinStart, EkinDelta]
|
|
'adelta',[] ... % in the format of [aStart, aDelta]
|
|
);
|
|
d = readsp2(filename);
|
|
if (isempty(d.image))
|
|
return
|
|
end
|
|
data.image = d.image;
|
|
data.raw = d.raw;
|
|
comments = d.comment;
|
|
|
|
% Parse ERange and aRange
|
|
ini = IniConfig();
|
|
ini.ReadStream(comments,'#');
|
|
|
|
value = ini.GetValues('Transform','ERange','');
|
|
erange = value{1};
|
|
delta = (erange(2)-erange(1))/(size(data.image,2)-1);
|
|
data.erange = erange;
|
|
data.edelta = [erange(1) delta];
|
|
|
|
value = ini.GetValues('Transform','aRange','');
|
|
arange = value{1};
|
|
delta = (arange(2)-arange(1))/(size(data.image,1)-1);
|
|
data.arange = arange;
|
|
data.adelta = [arange(1) delta];
|
|
|
|
% Parse Transform section
|
|
transform = [];
|
|
keys = {'lensmode', 'Ek', 'Ep', 'WF', 'ERange', 'aRange', 'De1', 'aInner', ...
|
|
'eShift', 'Da1', 'Da3', 'Da5', 'Da7', 'pixel_size', 'magnification', ...
|
|
'offset', 'interpolation_mode', 'intensity_scaling', 'aUnit', ...
|
|
'eGrid', 'aGrid', 'source'};
|
|
for key=keys
|
|
keyname = key{1};
|
|
value = ini.GetValues('Transform', keyname, '');
|
|
value = value{1};
|
|
transform.(keyname) = value;
|
|
end
|
|
end
|