0001 function pa_leadfield_make_center_sphere(fig)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 if ~exist('fig', 'var') || isempty(fig) || ~ishandle(fig)
0017 error('invalid figure handle.');
0018 end
0019
0020
0021
0022
0023
0024
0025 data = guidata(fig);
0026 H = data.H;
0027
0028
0029 [d_name, f_name] = vb_file_select({'.hdr'}, 'Select analyze file');
0030 if ~isempty(d_name)
0031 analyze_file = [d_name, filesep, f_name{1}];
0032 else
0033
0034 return;
0035 end
0036
0037
0038
0039
0040
0041
0042
0043 h = waitbar(0,'MRI file reading');
0044 pause(0.01);
0045
0046
0047 try
0048 avw = avw_read_ras(analyze_file);
0049 catch
0050 errordlg('cannot read mri file.', 'error');
0051 cancelled = true;
0052 return;
0053 end
0054
0055 waitbar(100);
0056
0057
0058
0059 Vcenter = str2num(get(H.center_head_edit, 'String'));
0060 if ~isempty(Vcenter)
0061 sphere.radius = data.Vradius;
0062 sphere.center = Vcenter;
0063 avw.sphere_on_spm_right_m = sphere;
0064 end
0065
0066
0067 try
0068
0069 vb_sphere_head(avw);
0070 if ishandle(h), close(h); end
0071
0072 waitfor(gcf);
0073 catch
0074 errordlg('something error occured in vb_sphere_head', 'error');
0075 return;
0076 end
0077
0078
0079 try
0080 center = evalin('base', 'avw.center');
0081 radius = evalin('base', 'avw.radius');
0082 catch
0083
0084 evalin('base', 'clear avw;');
0085 return;
0086 end
0087 evalin('base', 'clear avw;');
0088
0089
0090 set(H.center_head_edit, 'String', num2str(center, 3));
0091 data.Vradius = radius;
0092
0093 guidata(fig, data);