⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfbox_pre_roiselectg.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function varargout=mfbox_pre_roiselectg(varargin)% MFBOX_PRE_ROISELECTG M-file for mfbox_pre_roiselectg.fig%% See also: GUIDE, GUIDATA, GUIHANDLES%% Copyright by Peter Gruber and Fabian J. Theis% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name%           http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txt% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',mfilename, ...    'gui_Singleton',gui_Singleton, ...    'gui_OpeningFcn',@mfbox_pre_roiselectg_OpeningFcn, ...    'gui_OutputFcn',@mfbox_pre_roiselectg_OutputFcn, ...    'gui_LayoutFcn',[] , ...    'gui_Callback',[]);if (nargin&&(ischar(varargin{1})))    gui_State.gui_Callback = str2func(varargin{1});endif (nargout)    [varargout{1:nargout}] = gui_mainfcn(gui_State,varargin{:});else    gui_mainfcn(gui_State,varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before mfbox_pre_roiselectg is made visible.function mfbox_pre_roiselectg_OpeningFcn(hObject,eventdata,handles,varargin)% varargin{1} contains data X% varargin{2} contains data mask% varargin{3} contains data grid% varargin{4} contains timeline% varargin{5} (optional) contains the parameters% varargin{6} (optional) contains runflag (0: param edit only, 1: param+run, 2: run only)% varargin{7} (optional) contains private struct for mfbox_databackend('redraw_mask',mask,private)set(handles.manual,'String','Manual ROI select start');set(handles.manual,'Enable','inactive');handles.output = hObject;handles.X = varargin{1};if (isstruct(handles.X)), s = [handles.X.dim,handles.X.timesteps];else, s = size(handles.X);endhandles.dim = s(1:(end-1));if (length(handles.dim)==1), handles.dim = [handles.dim,1]; endhandles.n = s(end);if (nargin>4), handles.mask = varargin{2};else handles.mask = true(handles.dim);endhandles.dim = size(handles.mask);if (nargin>5), handles.grid = varargin{3};else handles.grid = mfbox_mkgrid(handles.dim)';endif (nargin>6), handles.timeline = varargin{4};else handles.timeline = 0:(handles.n-1);endif (nargin>7), handles.params = varargin{5};else handles.params = [];endif (nargin>8), handles.runflag = varargin{6};else handles.runflag = 2;endif (nargin>9)     handles.private = varargin{7};    set(handles.manual,'Enable','on');endp = {'bmrad_none' 'bmrad_full' 'bmrad_custom'};for i=1:length(p)    if (handles.params.brainmask==i), set(handles.(p{i}),'Value',1);    else set(handles.(p{i}),'Value',0);    endendset(handles.priority,'String',mat2str(handles.params.priority));bmf = handles.params.bmfile;if (iscell(bmf)), bmf = bmf{1}; endif (strcmp(p{handles.params.brainmask},'bmrad_custom')), v = 'on';else v = 'off';endset(handles.masksel,'Enable',v,'String',bmf);set(handles.masksel_but,'Enable',v);set(handles.threshold,'Value',handles.params.threshold);handles.bmfile = handles.params.bmfile;guidata(hObject,handles);uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.function varargout=mfbox_pre_roiselectg_OutputFcn(hObject,eventdata,handles)% varargout{1} contains the (edited) parameters% varargout{2} (optional) contains (changed) private handleif (isstruct(handles))    close(handles.figure1);    varargout{1} = handles.params;    if (nargout>1), varargout{2} = handles.private; endelse    varargout{1} = [];end% --- Executes on button press in run.function run_Callback(hObject,eventdata,handles)handles.params.priority = str2double(get(handles.priority,'String'));p = {'bmrad_none' 'bmrad_full' 'bmrad_custom'}; c = false(1,3);for i=1:length(p), c(i) = logical(get(handles.(p{i}),'Value')); endc = find(c);handles.params.brainmask = c(1);handles.params.bmfile = handles.bmfile;handles.params.threshold = get(handles.threshold,'Value');if (isfield(handles,'manualmask')), handles.params.manualmask = handles.manualmask; endguidata(hObject,handles);uiresume(gcf());function priority_Callback(hObject,eventdata,handles)set(hObject,'String',mat2str(floor(str2double(get(hObject,'String')))));guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function priority_CreateFcn(hObject,eventdata,handles)if (ispc&&(isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))))    set(hObject,'BackgroundColor','white');end% --- Executes on button press in manual_start.function manual_Callback(hObject,eventdata,handles)switch get(hObject,'String')    case 'Manual ROI select start'        %brainmask = get(handles.brainmask,'Value');        prgs = mfbox_progress([],'title','ROI','string','Registering brainmask...','progress',[1,4]);        mask = zeros(handles.dim);        mfbox_progress(prgs,'title','ROI','string','Registering brainmask...','progress',[4,4]);        mfbox_progress(prgs,'close',[]);        handles.private = mfbox_databackend('startmaskedit',mask,handles.private);        set(hObject,'String','Manual ROI select stop');    case 'Manual ROI select stop'        [handles.manualmask,handles.private] = ...            mfbox_databackend('stopmaskedit',handles.private);        set(hObject,'String','Manual ROI select start');        if (isfield(handles,'private')), mfbox_databackend('redraw_mask',handles.mask,handles.private); endendguidata(hObject,handles);% --- Executes on button press in bmrad_none.function bmrad_none_Callback(hObject,eventdata,handles)p = {'bmrad_custom','bmrad_full'};for i=1:length(p), set(handles.(p{i}),'Value',0); endset(hObject,'Value',1);set(handles.masksel,'Enable','off');set(handles.masksel_but,'Enable','off');handles = updatemask(handles);guidata(hObject,handles);% --- Executes on button press in bmrad_custom.function bmrad_custom_Callback(hObject,eventdata,handles)p = {'bmrad_none','bmrad_full'};for i=1:length(p), set(handles.(p{i}),'Value',0); endset(hObject,'Value',1);set(handles.masksel,'Enable','on');set(handles.masksel_but,'Enable','on');handles = updatemask(handles);bmf = handles.bmfile;if (iscell(bmf)), bmf = bmf{1}; endset(handles.masksel,'String',bmf);guidata(hObject,handles);% --- Executes on button press in bmrad_full.function bmrad_full_Callback(hObject,eventdata,handles)p = {'bmrad_none','bmrad_custom'};for i=1:length(p), set(handles.(p{i}),'Value',0); endset(hObject,'Value',1);set(handles.masksel,'Enable','off');set(handles.masksel_but,'Enable','off');handles = updatemask(handles);guidata(hObject,handles);function masksel_Callback(hObject,eventdata,handles)handles.bmfile = get(hObject,'String');handles = updatemask(handles);bmf = handles.bmfile;if (iscell(bmf)), bmf = bmf{1}; endset(handles.masksel,'String',bmf);guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function masksel_CreateFcn(hObject,eventdata,handles)if (ispc&&(isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))))    set(hObject,'BackgroundColor','white');end% --- Executes on button press in masksel_but.function masksel_but_Callback(hObject,eventdata,handles)handles.bmfile = '';handles = updatemask(handles);bmf = handles.bmfile;if (iscell(bmf)), bmf = bmf{1}; endset(handles.masksel,'String',bmf);guidata(hObject,handles);% --- Executes on slider movement.function threshold_Callback(hObject,eventdata,handles)handles = updatemask(handles);guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function threshold_CreateFcn(hObject,eventdata,handles)if (isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')))    set(hObject,'BackgroundColor',[.9,.9,.9]);endfunction handles=updatemask(handles)p = {'bmrad_none','bmrad_full','bmrad_custom'}; c = false(1,3);for i=1:length(p), c(i) = logical(get(handles.(p{i}),'Value')); endc = find(c);t = get(handles.threshold,'Value');mask = true(handles.dim);if (isfield(handles,'manualmask'))    if (~isempty(handles.manualmask)), mask = mask & (handles.manualmask>0); endendif (c(1)==2)    if (isfield(handles,'private'))        [m,handles.private] = mfbox_databackend('getbrainmask',handles.private);        m = reshape(m,handles.dim);    else        m = mfbox_databackend('getbrainmask');        g = 1+(diag((size(m)-1)./(handles.dim-1))*(mfbox_mkgrid(handles.dim)'-1));        g = mat2cell(g,ones(1,size(g,1)),size(g,2));        m = reshape(interpn(m,g{:}),handles.dim);    end    mask = mask&(m>t);elseif (c(1)==3)    if (isfield(handles,'private'))        [m,handles.bmfile,handles.private] = mfbox_databackend('import_mask',handles.bmfile,handles.private);        m = reshape(m,handles.dim);    else        [m,handles.bmfile] = mfbox_databackend('import_mask',handles.bmfile);        g = 1+(diag((size(m)-1)./(handles.dim-1))*(mfbox_mkgrid(handles.dim)'-1));        g = mat2cell(g,ones(1,size(g,1)),size(g,2));        m = reshape(interpn(m,g{:}),handles.dim);    end    mask = mask&(m>t);endhandles.params.mask=mask;if (isfield(handles,'private')), mfbox_databackend('redraw_mask',mask,handles.private); end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -