function selectedReference = PEEMstartOnTheFlyAnalysis_test(fileBaseName)
IDfile = fopen(fileBaseName, 'r');
IDfile_meta = fopen(fileBaseName+'_meta', 'r');
layers = fread(IDfile_meta, Inf, 'uint64');
layerNumber = size(layers, 1);
fprintf("%u layers in file.\n", layerNumber);
system( 'top -n 1 | awk ''/RES/ {print( $7 "\t" $11 "\t" $12 "\t" $13)}'' > mem.log' );
writeMemLogEntry( 'Before opening first image.' );
refID = 1;
figShownIm = figure;
shownIm = imagesc( loadOneBinPEEMimgAt( IDfile, refID) );
colormap gray; axis image; axis off;
writeMemLogEntry( 'First image loaded.' );
setappdata(figShownIm,'layerNumber',layerNumber);
setappdata(figShownIm,'imID',refID);
setappdata(figShownIm,'IDfile',IDfile);
setappdata(figShownIm,'shownIm',shownIm);
shownImID = uicontrol('Style', 'text',...
'String', sprintf('Current image: %u / %u', refID, layerNumber),...
'Units', 'normalized',...
'Position', [0.33 0.05 .15 .03]);
setappdata(figShownIm,'shownImID',shownImID);
prevIm = uicontrol('String', '<-',...
'Callback', @loadNewImg,...
'Units','normalized',...
'Position',[0.17 0 .15 .04]);
nextIm = uicontrol('String', '->',...
'Callback', @loadNewImg,...
'Units','normalized',...
'Position',[0.34 0 .15 .04]);
selectRef = uicontrol('String', 'Select as reference',...
'Callback', 'uiresume()',...
'Units','normalized',...
'Position',[0.51 0 .15 .04]);
uiwait();
fclose(IDfile);
fclose(IDfile_meta);
selectedReference = shownIm.CData;
close(figShownIm);
writeMemLogEntry( 'Image figure closed.' );
end
function loadNewImg(hObject, eventData, handles)
layerNumber = getappdata(hObject.Parent,'layerNumber');
imID = getappdata(hObject.Parent,'imID');
IDfile = getappdata(hObject.Parent,'IDfile');
shownIm = getappdata(hObject.Parent,'shownIm');
shownImID = getappdata(hObject.Parent,'shownImID');
switch(hObject.String)
case '<-'
diffID = -1;
case '->'
diffID = 1;
end
if( (imID+diffID)<=0 || (imID+diffID)>layerNumber )
diffID=0;
end
shownImID.String = sprintf('Current image: %u / %u', imID+diffID, layerNumber);
setappdata(hObject.Parent,'imID',imID+diffID);
shownIm.CData = loadOneBinPEEMimgAt( IDfile, imID+diffID);
writeMemLogEntry( shownImID.String );
end
function writeMemLogEntry( comment )
system( [ 'top -o RES -n 1 | awk ''/MATLAB/ {print( $7 "\t" $11 "\t" $12 "\t" $13 "\t' comment '")}'' >> mem.log' ] );
end