From 5ef2412df118696ee21d6b188b3488b51ea16cb7 Mon Sep 17 00:00:00 2001 From: Mark Winter <mwinter@drexel.edu> Date: Tue, 15 Apr 2014 13:43:27 -0400 Subject: [PATCH] Added support to toggle neuropicker last/stain frame using up/down and left/right arrows. Also now always finds last frame image in folder even if another image was selected. --- src/MATLAB/NeuroPicker.m | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/MATLAB/NeuroPicker.m b/src/MATLAB/NeuroPicker.m index 9b4dfdf6..0c93df7a 100644 --- a/src/MATLAB/NeuroPicker.m +++ b/src/MATLAB/NeuroPicker.m @@ -30,6 +30,31 @@ function NeuroPicker() loadStainImages(fullfile(imgPath,phaseFiles(1).name)); end + lastImgFile = ''; + lastImgFrame = 0; + + flist = dir(fullfile(imgPath,'*.tif')); + for i=1:length(flist) + imgFilePattern = '(.+)_t(\d+).tif'; + imgFileTokens = regexpi(flist(i).name,imgFilePattern, 'once','tokens'); + if ( isempty(imgFileTokens) ) + continue; + end + + imgFrame = str2double(imgFileTokens{2}); + if ( imgFrame > lastImgFrame ) + lastImgFrame = imgFrame; + lastImgFile = [imgFileTokens{1} '_t' imgFileTokens{2} '.tif']; + end + end + + if ( isempty(lastImgFile) ) + msgbox('Unable to identify last frame image in selected folder.'); + return; + end + + imgFile = lastImgFile; + [sigDigits datasetName] = ParseImageName(imgFile); datasetPath = fullfile(imgPath,imgFile); @@ -55,7 +80,7 @@ function NeuroPicker() hFig = figure(); set(hFig, 'CloseRequestFcn',@closeFigure); set(hFig, 'WindowScrollWheelFcn',@scrollToggle); -% set(hFig, 'WindowScrollWheelFcn',@ScrollToggle); + set(hFig, 'KeyPressFcn',@figureKeyPress); createMenu(); createEmptyMenu(); @@ -550,6 +575,14 @@ function guessPath = guessOpenPath() end end +function figureKeyPress(src,evt) + if ( strcmpi(evt.Key, 'downarrow') || strcmpi(evt.Key, 'rightarrow') ) + scrollToggle(); + elseif ( strcmpi(evt.Key, 'uparrow') || strcmpi(evt.Key, 'leftarrow') ) + scrollToggle(); + end +end + function scrollToggle(src, evt) global hFig bDirty viewIm finalIm stainIm datasetName -- GitLab