Home > Source > Callbacks > register.m

register

PURPOSE ^

REGISTER: callback functions for AART GUI

SYNOPSIS ^

function varargout = register(varargin)

DESCRIPTION ^

 REGISTER: callback functions for AART GUI
 REGISTER is an M-file for register.fig
      REGISTER, by itself, creates a new REGISTER or raises the existing
      singleton*.

      H = REGISTER returns the handle to a new REGISTER or the handle to
      the existing singleton*.

      REGISTER('CALLBACK',hObject,eventData,handles,...) calls the local
      function named CALLBACK in REGISTER.M with the given input arguments.

      REGISTER('Property','Value',...) creates a new REGISTER or raises the
      existing singleton*.  Starting from the left, property value pairs are
      applied to the GUI before register_OpeningFunction gets called.  An
      unrecognized property name or invalid value makes property application
      stop.  All inputs are passed to register_OpeningFcn via varargin.

      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
      instance to run (singleton)".

 Code construction assisted by GUIDE

    GENERAL

      varargout = register(varargin)

    INPUT/S

      -Currently not applicable
          
           
    OUTPUT/S

      -Not used at present

    PENDING WORK

      -The function will be extended to have more callbacks. Shifting of
      certain sub-routines outside might be possible in the future,
      provided that objects in the GUI need not be passed.

    KNOWN BUG/S

      -February: Some callbacks such as MDL are not yet implemnented and a
      sensible message box appears.

    COMMENT/S

      -

    RELATED FUNCTION/S

      

    ABOUT

      -Created:     January 2004
      -Last update: February 13th, 2004
      -Revision:    0.6.9
      -Author:      R. S. Schestowitz, University of Manchester
 ==============================================================

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 
0002 function varargout = register(varargin)
0003 
0004 % REGISTER: callback functions for AART GUI
0005 % REGISTER is an M-file for register.fig
0006 %      REGISTER, by itself, creates a new REGISTER or raises the existing
0007 %      singleton*.
0008 %
0009 %      H = REGISTER returns the handle to a new REGISTER or the handle to
0010 %      the existing singleton*.
0011 %
0012 %      REGISTER('CALLBACK',hObject,eventData,handles,...) calls the local
0013 %      function named CALLBACK in REGISTER.M with the given input arguments.
0014 %
0015 %      REGISTER('Property','Value',...) creates a new REGISTER or raises the
0016 %      existing singleton*.  Starting from the left, property value pairs are
0017 %      applied to the GUI before register_OpeningFunction gets called.  An
0018 %      unrecognized property name or invalid value makes property application
0019 %      stop.  All inputs are passed to register_OpeningFcn via varargin.
0020 %
0021 %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
0022 %      instance to run (singleton)".
0023 %
0024 % Code construction assisted by GUIDE
0025 %
0026 %    GENERAL
0027 %
0028 %      varargout = register(varargin)
0029 %
0030 %    INPUT/S
0031 %
0032 %      -Currently not applicable
0033 %
0034 %
0035 %    OUTPUT/S
0036 %
0037 %      -Not used at present
0038 %
0039 %    PENDING WORK
0040 %
0041 %      -The function will be extended to have more callbacks. Shifting of
0042 %      certain sub-routines outside might be possible in the future,
0043 %      provided that objects in the GUI need not be passed.
0044 %
0045 %    KNOWN BUG/S
0046 %
0047 %      -February: Some callbacks such as MDL are not yet implemnented and a
0048 %      sensible message box appears.
0049 %
0050 %    COMMENT/S
0051 %
0052 %      -
0053 %
0054 %    RELATED FUNCTION/S
0055 %
0056 %
0057 %
0058 %    ABOUT
0059 %
0060 %      -Created:     January 2004
0061 %      -Last update: February 13th, 2004
0062 %      -Revision:    0.6.9
0063 %      -Author:      R. S. Schestowitz, University of Manchester
0064 % ==============================================================
0065 
0066 % Edit the above text to modify the response to help_button register
0067 
0068 % Last Modified by GUIDE v2.5 24-Mar-2004 17:39:06
0069 
0070 % Begin initialization code - DO NOT EDIT
0071 gui_Singleton = 0;
0072 gui_State = struct('gui_Name',       mfilename, ...
0073     'gui_Singleton',  gui_Singleton, ...
0074     'gui_OpeningFcn', @register_OpeningFcn, ...
0075     'gui_OutputFcn',  @register_OutputFcn, ...
0076     'gui_LayoutFcn',  [] , ...
0077     'gui_Callback',   []);
0078 if nargin & isstr(varargin{1})
0079     gui_State.gui_Callback = str2func(varargin{1});
0080 end
0081 
0082 if nargout
0083     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
0084 else
0085     gui_mainfcn(gui_State, varargin{:});
0086 end
0087 % End initialization code - DO NOT EDIT
0088 
0089 % --- Executes just before register is made visible.
0090 function register_OpeningFcn(hObject, eventdata, handles, varargin)
0091 % This function has no output args, see OutputFcn.
0092 % hObject    handle to figure
0093 % eventdata  reserved - to be defined in a future version of MATLAB
0094 % handles    structure with handles and user data (see GUIDATA)
0095 % varargin   command line arguments to register (see VARARGIN)
0096 
0097 % Choose default command line output for register
0098 handles.output = hObject;
0099 
0100 % Update handles structure
0101 guidata(hObject, handles);
0102 
0103 if strcmp(get(hObject,'Visible'),'off')
0104     initialize_gui(hObject, handles);
0105 end
0106 
0107 
0108   set(handles.resume, 'cdata', playbutton);
0109   set(handles.pause, 'cdata', stopbutton);
0110   set(handles.register_1d, 'cdata', registerbutton);
0111   set(handles.help_button, 'cdata', helpbutton);
0112   set(handles.abort, 'cdata', abortbutton);
0113   set(handles.reset, 'cdata', resetbutton);
0114   
0115 
0116 
0117 % --- Outputs from this function are returned to the command line.
0118 function varargout = register_OutputFcn(hObject, eventdata, handles)
0119 % varargout  cell array for returning output args (see VARARGOUT);
0120 % hObject    handle to figure
0121 % eventdata  reserved - to be defined in a future version of MATLAB
0122 % handles    structure with handles and user data (see GUIDATA)
0123 
0124 % Get default command line output from handles structure
0125 varargout{1} = handles.output;
0126 
0127 function register = registerbutton
0128 
0129 register = iconize(imread('reg.jpg'));
0130 register(register>240) = .69*255;
0131 
0132 
0133 function stop = stopbutton
0134 
0135 stop = iconize(imread('stop.jpg'));
0136 stop(stop>240) = .69*255;
0137 
0138 
0139 % --- Hand-written callback
0140 % --- Used to return 'CData' for the Play icon on the Play button
0141 function play = playbutton
0142 
0143 play = iconize(imread('play.jpg'));
0144 play(play>240) = .69*255;
0145 
0146 
0147 function abort = abortbutton
0148 
0149 abort = iconize(imread('abort.jpg'));
0150 abort(abort>240) = .69*255;
0151 
0152 
0153 function reset = resetbutton
0154 
0155 reset = iconize(imread('reset.jpg'));
0156 reset(reset>240) = .69*255;
0157 
0158 
0159 function help = helpbutton
0160 
0161 help = iconize(imread('help.jpg'));
0162 help(help>240) = .69*255;
0163 
0164 
0165 % --- Hand-written callback
0166 % --- Used to create icon data from an image, a
0167 function out = iconize(a)
0168 
0169 % Find the size of the acquired image and determine how much data will need
0170 % to be lost in order to form a 18x18 icon
0171 [r,c,d] = size(a);
0172 r_skip = ceil(r/25);
0173 c_skip = ceil(c/25);
0174 
0175 % Create the 25x25 icon (RGB data)
0176 out = a(1:r_skip:end,1:c_skip:end,:);
0177 
0178 
0179 
0180 
0181 function register_1d_Callback(hObject, eventdata, handles)
0182 
0183 % getappdata(0, 'exit_handle') This is how advanced menu values are
0184 % obtained
0185 
0186 if ((str2num(get(handles.save_pixels, 'String')) == 0)...
0187         & (get(handles.save_video_option, 'Value') == 1) ),
0188     set(handles.show_pixels_throughout_option, 'Value', 1);
0189     set(handles.show_pixels, 'String', '1');
0190     % force figure to be shown for video capture
0191 end
0192 
0193 if ((str2num(get(handles.save_pixels, 'String')) == 3)...
0194         & (get(handles.save_video_option, 'Value') == 1) ),
0195     set(handles.repeatedly_show_model_option, 'Value', 1);
0196     set(handles.repeatedly_show_model, 'String', '1');
0197     % force figure to be shown for video capture of model
0198 end
0199 
0200 
0201 if ((str2num(get(handles.save_pixels, 'String')) == 1)...
0202         & (str2num(get(handles.save_video, 'String')) == 1)),
0203     set(handles.show_plots_throughout_option, 'Value', 1);
0204     set(handles.show_plot, 'String', '1');
0205     % bring up display if video of plots needs to be captured
0206 end
0207 
0208 if ((str2num(get(handles.save_pixels, 'String')) == 2)...
0209         & (str2num(get(handles.save_video, 'String')) == 1)),
0210     set(handles.show_mesh_throughout_option, 'Value', 1);
0211     set(handles.show_mesh, 'String', '1');
0212     % bring up display if video of plots needs to be captured
0213 end
0214 
0215 
0216 if ((str2num(get(handles.overlap_scores, 'String')) == 1)...
0217         & (str2num(get(handles.all_objective_functions, 'String')) == 1)),
0218     set(handles.always_score_by_model_option, 'Value', 1);   
0219     set(handles.show_score_vs_iteration_option, 'Value', 1);
0220     set(handles.always_score_by_model, 'String', 1);   
0221     set(handles.show_score_vs_iteration, 'String', 1);
0222       % show the required results if overlapping scores are displayed
0223 end
0224 
0225 
0226 if (str2num(get(handles.use_filename, 'String')) == 0),
0227     movie_name_to_pass = 'Undefined.avi';
0228     % can generate sensible name as done by default in
0229     % build_1d_bump_model, but currently uses a default name
0230 else
0231     movie_name_to_pass = get(handles.file_for_video_box, 'String');
0232 end
0233 
0234 original_base_handle = get(handles.filename_handle, 'String');
0235 
0236 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0237 % This is where registration actually starts
0238 
0239 range_minimum = str2num(getappdata(0,'minimum_value'));
0240 range_maximum = str2num(getappdata(0,'maximum_value'));
0241 range_step = str2num(getappdata(0,'step_size'));
0242 automation_type = getappdata(0, 'automation_type');
0243 
0244 % check for some exceptions
0245 
0246 if (range_minimum > range_maximum),
0247     error('Minimum cannot be greater than maximum.');
0248 % elseif (range_maximum - range_minimum < range_step)
0249 %    error('Step size does not fit within range defined.');
0250 end
0251 
0252 
0253 for i = range_minimum:range_step:range_maximum,
0254     
0255     if (strcmp(automation_type, 'None')),
0256         % do nothing, also means that same experiments can be performed
0257         % over and over again with new sets. Alternatively there is a sets
0258         % option built-in to build_1d_bump_model but it appears less
0259         % reliable. It was used mainly by Kate for statistics in the far
0260         % past.
0261     elseif (strcmp(automation_type, 'Number of Knot-points')),
0262         set(handles.knot_points, 'String', num2str(i));
0263         set(handles.filename_handle, 'String', [[original_base_handle], ['-'], [num2str(i)]]);     
0264     elseif (strcmp(automation_type, 'Number of Modes')),
0265         set(handles.number_of_modes_display, 'String', num2str(i));
0266         set(handles.filename_handle, 'String', [[original_base_handle], ['-'], [num2str(i)]]);    
0267     elseif (strcmp(automation_type, 'Model Weight')),
0268         set(handles.model_weight_constant_value, 'String', num2str(i));
0269         set(handles.filename_handle, 'String', [[original_base_handle], ['-'], [num2str(i)]]);   
0270     elseif (strcmp(automation_type, 'Smoothing')),
0271         set(handles.window, 'String', num2str(i));
0272         set(handles.filename_handle, 'String', [[original_base_handle], ['-'], [num2str(i)]]); 
0273     elseif (strcmp(automation_type, 'Perturbation')),
0274         setappdata(0, 'perturbation_offset', num2str(i));
0275         set(handles.filename_handle, 'String', [[original_base_handle], ['-'], [num2str(i)]]);     
0276     end
0277     
0278     if (strcmp(which([[get(handles.filename_handle, 'String')],['.mat']]), '') == 0),
0279         % check if handle exists already
0280         set(handles.filename_handle, 'String',[[get(handles.filename_handle, 'String')],['-'], num2str(ceil(rand * 999))]);
0281         % append extra numbers
0282     end
0283     
0284     if (strcmp(get(handles.filename_handle, 'String'), '')),
0285         % check if handle is empty
0286         set(handles.filename_handle, 'String', [['Undefined'],['-'], num2str(ceil(rand * 999))]);
0287         % append extra numbers to the 'Undefined' string
0288     end
0289     
0290     set(handles.status_bar, 'String', 'Registration in progress...');
0291        % indicate status in the status bar
0292     
0293     set(handles.pause, 'Enable', 'on');
0294     set(handles.resume, 'Enable', 'off');
0295         % enable the buttons that control tehe state of the process (will
0296         % currently work only if drawing is involved
0297     
0298     [status] = build_1d_bump_model(get(handles.spline_type_display, 'String')...
0299         , get(handles.placement_method_display, 'String')...
0300         , get(handles.objective_function_display, 'String')...
0301         , str2num(get(handles.apply_corrective_offset, 'String'))...
0302         , str2num(get(handles.save_video, 'String'))...
0303         , str2num(get(handles.show_plot, 'String'))...   
0304         , str2num(get(handles.save_pixels, 'String'))...
0305         , str2num(get(handles.hierarchical_text, 'String'))...
0306         , str2num(get(handles.use_defaults, 'String'))...
0307         , str2num(get(handles.show_statistics, 'String'))...
0308         , str2num(get(handles.repeatedly_show_model, 'String'))...
0309         , str2num(get(handles.show_pixels, 'String'))...
0310         , str2num(get(handles.show_score_vs_iteration, 'String'))...
0311         , str2num(get(handles.show_final_model, 'String'))...
0312         , str2num(get(handles.find_specificity, 'String'))...
0313         , str2num(get(handles.show_score_while_optimising, 'String'))...
0314         , movie_name_to_pass...
0315         , str2num(get(handles.window, 'String'))...
0316         , str2num(get(handles.average_smoothing, 'String'))...
0317         , str2num(get(handles.gaussian_smoothing, 'String'))...
0318         , str2num(get(handles.bump_width, 'String'))...
0319         , str2num(get(handles.bump_width_variation, 'String'))...
0320         , str2num(get(handles.bump_height, 'String'))...
0321         , str2num(get(handles.bump_height_variation, 'String'))...
0322         , str2num(get(handles.bump_position_freedom, 'String'))...
0323         , str2num(get(handles.initial_diminish_factor, 'String'))...
0324         , str2num(get(handles.smoothness_factor, 'String'))...
0325         , str2num(get(handles.plot_before_and_after, 'String'))...
0326         , str2num(get(handles.number_of_bins, 'String'))...
0327         , str2num(get(handles.determinant, 'String'))...
0328         , str2num(get(handles.always_score_by_model, 'String'))...
0329         , get(handles.filename_handle, 'String')...
0330         , str2num(get(handles.number_of_modes_display, 'String'))... 
0331         , (str2num(get(handles.model_weight_constant_value, 'String')) / 100)...
0332         , get(handles.text108, 'String') ...
0333         , (str2num(get(handles.variatyion_kept_display, 'String')) / 100)...
0334         , str2num(get(handles.all_objective_functions, 'String'))...
0335         , get(handles.pdf, 'String')...
0336         , str2num(get(handles.save_data, 'String'))...
0337         , str2num(get(handles.load_data, 'String'))...
0338         , str2num(get(handles.save_bumps_flag, 'String'))...
0339         , str2num(get(handles.draw_warp_curve, 'String'))...
0340         , str2num(get(handles.overlap_scores, 'String'))...
0341         , str2num(get(handles.show_target, 'String'))...
0342         , get(handles.format, 'String')...
0343         , get(handles.filter_type, 'String')...
0344         , str2num(get(handles.level, 'String'))...
0345         , get(handles.model_score_type, 'String')...
0346         , str2num(get(handles.gen_iters, 'String'))...
0347         , str2num(get(handles.spec_iters, 'String'))...
0348         , str2num(get(handles.draw_curve_by_images, 'String'))...
0349         , str2num(get(handles.show_mesh, 'String'))...
0350         , get(handles.mesh_type, 'String')...
0351         , str2num(getappdata(0, 'exit_handle'))...
0352         , str2num(getappdata(0, 'show_score_figures'))...
0353         , str2num(getappdata(0, 'close_handle'))...
0354         , str2num(get(handles.frames_per_second, 'String'))...
0355         , str2num(getappdata(0, 'show_score_bar'))...
0356         , str2num(get(handles.knot_points, 'String'))...
0357         , str2num(get(handles.show_warp_targets, 'String'))...
0358         , str2num(get(handles.show_registration_target_flag, 'String'))...
0359         , str2num(get(handles.produce_record, 'String'))...
0360         , str2num(get(handles.initialise_warps_close_to_target, 'String'))...
0361         , str2num(get(handles.save_in_log, 'String'))...
0362         , getappdata(0, 'perturbation_method')...
0363         , str2num(getappdata(0, 'perturbation_offset'))...
0364         , str2num(get(handles.force_reference, 'String'))...
0365         , str2num(get(handles.cycle, 'String')) ...
0366         , get(handles.verbose_optimiser_flag, 'String') ...
0367         , str2num(get(handles.save_stats, 'String')) ...
0368         , str2num(getappdata(0, 'number_of_modes')) ...
0369         , str2num(getappdata(0, 'std')) ...
0370         , str2num(get(handles.show_warps_while_optimising_flag, 'String')) ...
0371         , get(handles.description, 'String') ...
0372         , str2num(getappdata(0, 'find_perfect_warp')) ...
0373         , str2num(getappdata(0, 'force_first_reference')) ...
0374         , str2num(getappdata(0, 'display_shape_model')) ...
0375         , str2num(getappdata(0, 'display_intensity_model')) ...
0376         , str2num(getappdata(0, 'plot_alignment')) ...
0377         , getappdata(0, 'error_verbosity') ...
0378         , str2num(getappdata(0, 'precision_required'))...
0379         , str2num(getappdata(0, 'background_colour_red'))...
0380         , str2num(getappdata(0, 'background_colour_green'))...
0381         , str2num(getappdata(0, 'background_colour_blue'))...
0382         , str2num(getappdata(0, 'dynamic_precision'))...
0383         , getappdata(0, 'automatic_precision_type')...
0384         , str2num(getappdata(0, 'rotate_surface')) ...
0385         , str2num(getappdata(0, 'draw_final_warps')) ...
0386         , getappdata(0, 'distance_type') ...
0387         , str2num(getappdata(0, 'retain_original_peak')) ...
0388         , getappdata(0, 'peak_type') ...
0389         , str2num(getappdata(0, 'add_points')) ...
0390         , str2num(getappdata(0, 'add_points_cycle')) ... 
0391   );
0392     
0393     % call the main function to carry out registration and fetch all the
0394     % arguments to be passed from the GUI
0395     
0396     set(handles.pause, 'Enable', 'off');
0397     set(handles.resume, 'Enable', 'off');
0398     % disable these buttons as they are not applicable when the application
0399     % does not run
0400     set(handles.status_bar, 'String', status);
0401     % get status returned from the function at the end of exectution and
0402     % display it in the status bar
0403 
0404 end
0405 
0406 %% Registration ends
0407 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0408 
0409 function initialize_gui(fig_handle, handles)
0410 
0411 % this function will be called at the start and every time 'reset' is
0412 % pressed
0413 
0414 % The main routines will set values and strings, but some will shade
0415 % sections in the GUI and initialise some button states and menus
0416 
0417 % organisation and ordering of the statements might be useful.
0418 if (strcmp(getenv('OS'), 'Linux')),
0419   set(handles.Main_window, 'Name', [['AART - Victoria University of Manchester - '], [get_month], ' ', [get_year], ' - Version ', [get_version], ' - ', [getenv('OS')], ' on ', [get_host], '@ ', [get_domain]]);
0420        % if on Linux, display machine identifier
0421 else
0422   set(handles.Main_window, 'Name', [['AART - Victoria University of Manchester - '], [get_month], ' ', [get_year], ' - Version ', [get_version], ' - ', [getenv('OS')]]);
0423 end
0424 
0425 set(handles.force_reference , 'String', '1');
0426 set(handles.force_reference_button, 'Value', 1);
0427 
0428 set(handles.save_in_log_button, 'Value', 1);
0429 set(handles.save_in_log, 'String', '1');
0430 
0431 % set the sliders
0432 
0433 set(handles.frames_per_second_slider, 'Value', 15);
0434 set(handles.smoothing_slider, 'Value', 0);
0435 set(handles.spec_slider, 'Value', 25);
0436 set(handles.gen_slider, 'Value', 25);
0437 set(handles.knotpoints_slider, 'Value', 5);
0438 
0439 % set the sliders of the bump properties
0440 
0441 set(handles.base_height_slider, 'Value', 0.2);
0442 set(handles.base_width_slider, 'Value', 0.5);
0443 set(handles.height_variation_slider, 'Value', 0.7);
0444 set(handles.width_variation_slider, 'Value', 0.2);
0445 set(handles.position_freedom_slider, 'Value', 0.9);
0446 set(handles.smoothness_slider, 'Value', 17);
0447 set(handles.cycle_slider, 'Value', 1);
0448 
0449 set(handles.rotate_surface, 'Value', 0);
0450 
0451 set(handles.dynamic_precision, 'Checked', 'off');
0452 setappdata(0, 'dynamic_precision', '0');
0453 
0454 setappdata(0, 'draw_final_warps', '0');
0455 
0456 setappdata(0, 'distance_type', 'sum_of_squared_distances');
0457 set(handles.Sum_of_Squared_Distances, 'Checked', 'on');
0458 set(handles.Absolute_Distances, 'Checked', 'off');
0459 
0460 setappdata(0, 'retain_original_peak', '0');
0461 set(handles.retain_original_peak_menu, 'Checked', 'off');
0462 
0463 % Advanced options handles
0464 
0465 setappdata(0, 'close_handle', '0');
0466 setappdata(0, 'exit_handle', '0');
0467 setappdata(0, 'show_score_figures', '0');
0468 setappdata(0, 'show_score_bar', '0');
0469 
0470 
0471 setappdata(0, 'peak_type', 'average_position');
0472 set(handles.peak_type_average_menu, 'Checked', 'on');
0473 set(handles.peak_type_initial_menu, 'Checked', 'off');
0474 
0475 % Perturbation options handles
0476 
0477 setappdata(0, 'perturbation_offset', '0');
0478 
0479 setappdata(0, 'number_of_modes', '2');
0480 setappdata(0, 'std', '2');
0481 
0482 setappdata(0, 'perturbation_method', 'random noise');
0483 
0484 setappdata(0, 'automation_type', 'None');
0485 setappdata(0, 'minimum_value', '1');
0486 setappdata(0, 'maximum_value', '1');
0487 setappdata(0, 'step_size', '1');
0488 
0489 % precision menus
0490 
0491 setappdata(0, 'precision_required', '1e - 7');
0492 set(handles.precision_5, 'Checked', 'off');
0493 set(handles.precision_6, 'Checked', 'off');
0494 set(handles.precision_7, 'Checked', 'on');
0495 set(handles.precision_8, 'Checked', 'off');
0496 set(handles.precision_9, 'Checked', 'off');
0497 set(handles.precision_10, 'Checked', 'off');
0498 set(handles.precision_12, 'Checked', 'off');
0499 set(handles.precision_15, 'Checked', 'off');
0500 set(handles.precision_3, 'Checked', 'off');
0501 set(handles.precision_4, 'Checked', 'off');
0502 
0503 setappdata(0, 'automatic_precision_type', 'default');
0504 
0505 setappdata(0, 'find_perfect_warp', '1');
0506 set(handles.find_perfect_warp_menu, 'Checked', 'on');
0507 
0508 setappdata(0, 'force_first_reference', '2');
0509 
0510 setappdata(0, 'error_verbosity', 'normal');
0511 set(handles.verbosity_low, 'Checked', 'off');
0512 set(handles.verbosity_normal, 'Checked', 'on');
0513 set(handles.verbosity_high, 'Checked', 'off');
0514 
0515 % icons visibility menu options
0516 
0517 set(handles.show_icons, 'Checked', 'on');
0518 set(handles.hide_icons, 'Checked', 'off');
0519 
0520 setappdata(0, 'display_shape_model', '0');
0521 set(handles.display_shape_model_menu, 'Checked', 'off');
0522 
0523 
0524 setappdata(0, 'display_intensity_model', '0');
0525 set(handles.display_intensity_model_menu, 'Checked', 'off');
0526 
0527 setappdata(0, 'add_points', '0');
0528 set(handles.add_points_menu, 'Checked', 'off');
0529 setappdata(0, 'add_points_cycle', '1');
0530 
0531 setappdata(0, 'plot_alignment', '0');
0532 
0533 
0534 set(handles.save_model_option, 'Value', 0); 
0535 set(handles.save_model_option, 'Enable', 'off');  
0536 set(handles.score_model_by_menu, 'Enable', 'off');
0537 set(handles.cycle, 'Enable', 'off');
0538 set(handles.cycle_slider, 'Enable', 'off');
0539 set(handles.cycle_label, 'Enable', 'off');
0540 
0541 set(handles.save_stats, 'String', '1');
0542 set(handles.save_stats_menu, 'Checked', 'on');
0543 
0544 set(handles.show_target, 'String', '0');
0545 set(handles.show_target_option, 'Enable', 'off');
0546 
0547 set(handles.single_point_option, 'Value', 1);
0548 set(handles.multi_point_option, 'Value', 0);
0549 
0550 set(handles.random_option, 'Value', 0);
0551 set(handles.edges_option, 'Value', 0);
0552 set(handles.grid_option, 'Value', 0);
0553 set(handles.alternating_grid_option, 'Value', 0);
0554 
0555 set(handles.random_and_Scale_option, 'Value', 1);
0556 set(handles.overlap_grid_option, 'Value', 0);
0557 set(handles.edges_and_scale_option, 'Value', 0);
0558 
0559 set(handles.apply_corrective_offset_option, 'Value', 0);
0560 set(handles.show_plots_throughout_option, 'Value', 0);
0561 set(handles.show_pixels_throughout_option, 'Value', 0);
0562 set(handles.show_mesh_throughout_option, 'Value', 0);
0563 
0564 set(handles.save_video_option, 'Value', 0);
0565 set(handles.find_specificity_option, 'Value', 0);
0566 set(handles.repeatedly_show_model_option, 'Value', 0);
0567 
0568 set(handles.show_warps_while_optimising_flag, 'String', '0');
0569 set(handles.show_warps_while_optimising, 'Checked', 'off');
0570 
0571 
0572 set(handles.show_target_option, 'Value', 0);
0573 
0574 set(handles.default_auto, 'Checked', 'on');
0575 set(handles.smart_auto, 'Checked', 'off');
0576 
0577 set(handles.save_mesh_option, 'Value', 0);
0578 set(handles.show_statistics_option, 'Value', 0);
0579 set(handles.save_plots_option, 'Value', 0);
0580 set(handles.save_pixels_option, 'Value', 1);
0581 set(handles.show_mesh, 'String', '0');
0582 
0583 set(handles.smoothing_disabled_option, 'Value', 1);
0584 set(handles.gaussian_smoothing_option, 'Value', 0);
0585 set(handles.average_smoothing_option, 'Value', 0);
0586 
0587 
0588 set(handles.default_attributes, 'Value', 1);
0589 set(handles.specify_attributes, 'Value', 0);
0590 
0591 set(handles.sequential_msd_option, 'Value', 0);
0592 set(handles.sequential_model_option, 'Value', 0);
0593 set(handles.joint_msd_option, 'Value', 0);
0594 set(handles.joint_model_option, 'Value', 1);
0595 set(handles.show_final_model_option, 'Value', 0);
0596 set(handles.show_score_vs_iteration_option, 'Value', 0);
0597 set(handles.show_score_while_optimising_option, 'Value', 0);
0598 set(handles.sequential_mi_option, 'Value', 0);
0599 set(handles.sequential_nmi_option, 'Value', 0);
0600 set(handles.joint_mi_option, 'Value', 0);
0601 set(handles.joint_nmi_option, 'Value', 0);
0602 set(handles.mixed_msd_model_option, 'Value', 0);
0603 set(handles.model_post_msd_option, 'Value', 0);
0604 set(handles.tfceccv, 'Value', 0);
0605 
0606 
0607 set(handles.filename_option, 'Value', 0);
0608 
0609 set(handles.export_default, 'Checked', 'off');
0610 set(handles.disable_save, 'Checked', 'off');
0611 set(handles.save_handle, 'Checked', 'on');
0612 
0613 set(handles.enable_samples, 'Checked', 'on');
0614 set(handles.disable_samples, 'Checked', 'off');
0615 set(handles.determinant, 'String', '1');
0616 
0617 set(handles.base_height_text, 'Enable', 'off');
0618 set(handles.width_variation_text, 'Enable', 'off');
0619 set(handles.height_variation_text, 'Enable', 'off');
0620 
0621 set(handles.base_width_text, 'Enable', 'off');
0622 set(handles.position_freedom_text, 'Enable', 'off');
0623 set(handles.smoothness_text, 'Enable', 'off');
0624 
0625 set(handles.attr_height, 'Enable', 'off');
0626 set(handles.attr_low_var, 'Enable', 'off');
0627 set(handles.attr_typical, 'Enable', 'off');
0628 
0629 set(handles.wavelet_option, 'Value', 0);
0630 
0631 % file formats section
0632 
0633 set(handles.format, 'String', 'png');
0634 
0635 set(handles.png, 'Checked', 'on');
0636 set(handles.bmp, 'Checked', 'off');
0637 set(handles.tiff, 'Checked', 'off');
0638 set(handles.jpeg, 'Checked', 'off');
0639 set(handles.hdf, 'Checked', 'off');
0640 set(handles.pcx, 'Checked', 'off');
0641 set(handles.xwd, 'Checked', 'off');
0642 set(handles.ras, 'Checked', 'off');
0643 set(handles.pbm, 'Checked', 'off');
0644 set(handles.pgm, 'Checked', 'off');
0645 set(handles.ppm, 'Checked', 'off');
0646 set(handles.pnm, 'Checked', 'off');
0647         % check only png, all other unchecked
0648 
0649 % functions menu
0650         
0651 set(handles.sequential_mi_option_menu, 'Checked', 'off');
0652 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
0653 set(handles.joint_msd_option_menu, 'Checked', 'off');
0654 set(handles.joint_model_option_menu, 'Checked', 'on');
0655 set(handles.sequential_msd_option_menu, 'Checked', 'off');
0656 set(handles.sequential_model_option_menu, 'Checked', 'off');
0657 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
0658 set(handles.model_post_msd_option_menu, 'Checked', 'off');
0659 set(handles.joint_mi_option_menu, 'Checked', 'off');
0660 set(handles.joint_nmi_option_menu, 'Checked', 'off');
0661 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
0662 set(handles.tfceccv_menu, 'Checked', 'off');
0663 set(handles.wavelet_option_menu, 'Checked', 'off');
0664 set(handles.model_pairs_menu, 'Checked', 'off');
0665 set(handles.seq_model_pairs_menu, 'Checked', 'off');
0666         
0667 % wavelets section
0668 
0669 set(handles.compression_type_title, 'Enable', 'off');
0670 set(handles.compression_level_title, 'Enable', 'off');
0671 set(handles.compression, 'Enable', 'off');
0672 set(handles.compression_level, 'Enable', 'off');
0673 
0674 % bump generation section
0675 
0676 set(handles.overlap_scores_option, 'Enable', 'off');
0677 set(handles.base_height_slider, 'Enable', 'off');
0678 set(handles.position_freedom_slider, 'Enable', 'off');
0679 
0680 set(handles.height_variation_slider, 'Enable', 'off');
0681 set(handles.width_variation_slider, 'Enable', 'off');
0682 set(handles.base_width_slider, 'Enable', 'off');
0683 set(handles.smoothness_slider, 'Enable', 'off');
0684 
0685 set(handles.pause, 'Enable', 'off');
0686 set(handles.resume, 'Enable', 'off');
0687 
0688 set(handles.PDF, 'Enable', 'off');
0689 set(handles.Kernel_title, 'Enable', 'off');
0690 set(handles.window_size, 'String', '');
0691 
0692 set(handles.large_test, 'Checked', 'off');
0693 set(handles.large_set, 'Checked', 'off');
0694 
0695 set(handles.progress_bar_menu, 'Checked', 'on');
0696 set(handles.hierarchical_text_menu, 'Checked', 'off');
0697 set(handles.quiet_menu, 'Checked', 'off');
0698 set(handles.cycle, 'String', '1');
0699 set(handles.load_data, 'String', '6');
0700 
0701 setappdata(0, 'rotate_surface', '0');
0702 
0703 % Menu OPEN section
0704 
0705 set(handles.open_flat, 'Checked', 'off');
0706 set(handles.open_disable, 'Checked', 'off');
0707 set(handles.handle_open, 'Checked', 'off');
0708 set(handles.open_default, 'Checked', 'off');
0709 set(handles.ellipse, 'Checked', 'on');
0710 set(handles.open_default, 'Checked', 'off');
0711 set(handles.open_plain, 'Checked', 'off');
0712 set(handles.open_plainran, 'Checked', 'off');
0713 set(handles.generate_simple_bump, 'Checked', 'off');
0714 
0715 set(handles.verbose_optimiser_flag, 'String', 'off');
0716 
0717 set(handles.save_bumps_flag, 'String', '0');
0718 set(handles.save_bumps, 'Checked', 'off');
0719 set(handles.save_data, 'String', '1');
0720 
0721 set(handles.produce_record_button, 'Value', 0);
0722 
0723 set(handles.draw_warp_curve, 'String', '0');
0724 
0725 set(handles.overlap_scores, 'String', '0');
0726 set(handles.overlap_scores_option, 'Value', 0);
0727 
0728 set(handles.spec_iters, 'String', '25');
0729 set(handles.gen_iters, 'String', '25');
0730 
0731 set(handles.initialise_warps_close_to_target, 'String', '0');
0732 set(handles.initialise_warps_close_to_target_button, 'Value', 0);
0733 
0734 set(handles.knot_points, 'String', '5');
0735 set(handles.show_warp_targets, 'String', '0');
0736 
0737 set(handles.random_option, 'Enable', 'off');
0738 set(handles.edges_option, 'Enable', 'off');
0739 set(handles.grid_option, 'Enable', 'off');
0740 set(handles.alternating_grid_option, 'Enable', 'off');
0741 set(handles.random_and_Scale_option, 'Enable', 'on');
0742 set(handles.overlap_grid_option, 'Enable', 'on');
0743 set(handles.edges_and_scale_option, 'Enable', 'on');
0744 
0745 
0746 set(handles.save_mesh_option, 'Enable', 'off');
0747 set(handles.save_plots_option, 'Enable', 'off');
0748 set(handles.save_pixels_option, 'Enable', 'off');
0749 
0750 % bump properties
0751 
0752 set(handles.smoothing_slider, 'Enable', 'off');
0753 set(handles.samples_flag, 'String', '1');
0754 set(handles.bump_width, 'String', '0.5');
0755 set(handles.bump_width_variation, 'String', '0.2');
0756 set(handles.bump_height, 'String', '0.2');
0757 set(handles.bump_height_variation, 'String', '0.7');
0758 set(handles.bump_position_freedom, 'String', '0.9');
0759 set(handles.initial_diminish_factor, 'String', '1');
0760 set(handles.smoothness_factor, 'String', '17');
0761 
0762 set(handles.window, 'String', '');
0763 set(handles.frames_per_second, 'String', '15');
0764 
0765 set(handles.plot_alignment_button, 'Value', 0);
0766 
0767 set(handles.rotate_surface, 'Enable', 'on');
0768  
0769 set(handles.model_score_type, 'String', 'Default');
0770 set(handles.gaussian_smoothing, 'String', '0');
0771 set(handles.average_smoothing, 'String', '0');
0772 set(handles.use_filename, 'String', '0');
0773 set(handles.produce_record, 'String', '0');
0774 
0775 set(handles.draw_curve_by_images, 'String', '0');
0776 set(handles.apply_corrective_offset, 'String', '0');
0777 set(handles.show_plot, 'String', '0');
0778 set(handles.show_pixels, 'String', '0');
0779 set(handles.show_registration_target_flag, 'String', '0');
0780 set(handles.show_registration_target, 'Enable', 'off');
0781 set(handles.show_registration_target, 'value', 0);
0782 
0783 set(handles.save_video, 'String', '0');
0784 set(handles.find_specificity, 'String', '0');
0785 set(handles.repeatedly_show_model, 'String', '0');
0786 
0787 set(handles.show_final_model, 'String', '0');
0788 set(handles.show_score_vs_iteration, 'String', '0');
0789 set(handles.show_score_while_optimising, 'String', '0');
0790 
0791 set(handles.show_statistics, 'String', '0');
0792 set(handles.save_pixels, 'String', '0');
0793 set(handles.use_defaults, 'String', '1');
0794 
0795 set(handles.perturb_option_button, 'Enable', 'off');
0796 set(handles.perturb_option_menuentry, 'Enable', 'off');
0797 
0798 set(handles.hierarchical_text, 'String', '1');
0799 set(handles.plot_before_and_after, 'String', '0');
0800 set(handles.always_score_by_model, 'String', '0');
0801 
0802 set(handles.constant, 'Value', 1);
0803 set(handles.edge, 'Value', 0);
0804 set(handles.variance, 'Value', 0);
0805 
0806 % set background colours to white
0807 
0808 setappdata(0, 'background_colour_red', '1');
0809 setappdata(0, 'background_colour_green', '1');
0810 setappdata(0, 'background_colour_blue', '1');
0811 
0812 set(handles.text108, 'String', 'constant');
0813 set(handles.model_weight_constant_value, 'String', '0');
0814 set(handles.model_weight_constant_value, 'Enable', 'on');
0815 
0816 set(handles.constant_value_text, 'Enable', 'on');
0817 set(handles.number_of_bins_text, 'Enable', 'off');
0818 set(handles.number_of_bins_slider, 'Enable', 'off');
0819 
0820 set(handles.number_of_bins, 'Enable', 'off');
0821 set(handles.number_of_modes_slider, 'Value', 20);
0822 set(handles.model_weight_slider, 'Value', 0);
0823 set(handles.model_weight_slider, 'Enable', 'on');
0824 
0825 set(handles.variation_kept_slider, 'Value', 98);
0826 set(handles.button_all_objective_functions, 'Value', 0);
0827 set(handles.number_of_bins_slider, 'Value', 50);
0828 
0829 set(handles.random_reference_menu, 'Checked', 'off'); 
0830 set(handles.first_reference_menu, 'Checked', 'off'); 
0831 set(handles.second_reference_menu, 'Checked', 'off'); 
0832 set(handles.reference_nearest_to_average_menu, 'Checked', 'on');
0833 set(handles.lowest_reference_menu, 'Checked', 'off'); 
0834 set(handles.highest_reference_menu, 'Checked', 'off'); 
0835 
0836 
0837 set(handles.all_objective_functions, 'String', '0');
0838 set(handles.number_of_bins, 'String', '50');
0839 set(handles.file_for_video_box, 'Enable', 'off');
0840 
0841 set(handles.filename_option, 'Enable', 'off');
0842 set(handles.show_plots_at_end_option, 'Value', 0);
0843 set(handles.always_score_by_model_option, 'Value', 0);
0844 
0845 set(handles.verbose_disabled, 'Checked', 'on');
0846 set(handles.verbose_iteration, 'Checked', 'off');
0847 set(handles.verbose_notify, 'Checked', 'off');
0848 set(handles.verbose_final, 'Checked', 'off');
0849 
0850 set(handles.filename_handle, 'String', 'Default');
0851 set(handles.description, 'String', 'Default');
0852 
0853 
0854 set(handles.overnight1, 'Checked', 'off');
0855 set(handles.overnight2, 'Checked', 'off');
0856 set(handles.overnight3, 'Checked', 'off');
0857 
0858 set(handles.normal_test, 'Checked', 'off')
0859 set(handles.max_test, 'Checked', 'off')
0860 set(handles.user_menus, 'Checked', 'on');
0861 set(handles.default_parameters, 'Checked', 'off');
0862 
0863 set(handles.file_for_video_box, 'String', 'Default.avi');
0864 set(handles.spline_type_display, 'String', 'single_point');
0865 set(handles.placement_method_display, 'String', 'random_and_scale');
0866 set(handles.mesh_type, 'String', 'Illuminated Surface'); 
0867 
0868 % set accelerators
0869 
0870 set(handles.Register, 'Accelerator', 'R');
0871 set(handles.Reset, 'Accelerator', 'E');
0872 set(handles.Exit, 'Accelerator', 'Q');
0873 set(handles.Quit_MATLAB, 'Accelerator', 'Z');
0874 set(handles.clear_status_bar, 'Accelerator', 'T');
0875 set(handles.show_warps_while_optimising, 'Accelerator', 'D');
0876 
0877 set(handles.display_shape_model_menu, 'Accelerator', 'G');
0878 set(handles.display_intensity_model_menu, 'Accelerator', 'I');
0879 set(handles.user_menus, 'Accelerator', '1');
0880 set(handles.default_parameters, 'Accelerator', '2');
0881 set(handles.normal_test, 'Accelerator', '3');
0882 set(handles.large_test, 'Accelerator', '4');
0883 set(handles.max_test, 'Accelerator', '5');
0884 set(handles.large_set, 'Accelerator', '6');
0885 set(handles.overnight1, 'Accelerator', '7');
0886 set(handles.overnight2, 'Accelerator', '8');
0887 set(handles.overnight3, 'Accelerator', '9');
0888 
0889 set(handles.find_perfect_warp_menu, 'Accelerator', 'F');
0890 set(handles.save_stats_menu, 'Accelerator', 'M');
0891 set(handles.perturb_option_menuentry, 'Accelerator', 'B');
0892 set(handles.automation_menu, 'Accelerator', 'A');
0893 set(handles.advanced, 'Accelerator', 'K');
0894 set(handles.bug, 'Accelerator', 'U');
0895 set(handles.aart_on_line, 'Accelerator', 'N');
0896 set(handles.Using_AART, 'Accelerator', 'H');
0897 
0898 set(handles.objective_function_display, 'String', 'model_opt_together');
0899 message = [['Autonomous Appearance-based Registration Test-bed  '];
0900     ['                                                   '];
0901     ['Imaging Science and Biomedical Engineering         '];
0902     ['                                                   '];          
0903     ['Victoria University of Manchester                  ']];
0904 
0905 % set up a preliminary message to be sent to the status bar. please note
0906 % that the message (matrix) must be rectangular.
0907 
0908 set(handles.status_bar, 'String', message);
0909 
0910 % set the status bar to display a welcoming message
0911 
0912 % now draw the logo
0913 
0914 background = imread('backgroundlarge.jpg');
0915 
0916 axes(handles.background);
0917 axis off;
0918 imshow(background,[0,255]);
0919 
0920 axes(handles.isbe_logo);
0921 isbe = imread('isbe.tif');
0922 
0923 %        The lines below give a binary option for black/white with a
0924 %        threshold. It was disabled in January 2004.
0925 %
0926 % for i=1:size(isbe,1),
0927 %     for j=1:size(isbe,2),
0928 %         if (isbe(i,j) > 150)
0929 %             isbe(i,j) = 180;
0930 %         else
0931 %             isbe(i,j) = 0;
0932 %         end
0933 %     end
0934 % end
0935 
0936 imshow(isbe,[0,255]);
0937 
0938 % The standard procedure is to read the data, set the apppropriate region
0939 % in the UI, and then display that image (logo) in that region.
0940 
0941 axes(handles.aart_logo);
0942 isbe = imread('aartsm.tif');
0943 imshow(isbe,[0,255]);
0944 
0945 samples = imread('samples.tif');
0946 
0947 axes(handles.samples);
0948 axis off;
0949 imshow(samples,[0,255]);
0950 
0951 
0952 
0953 % NOTE: by removing the two (last) lines above (axis and imshow) linkage can work.
0954 % Pending solution (March 2004) as axis must be void for ButtonDownFcn to
0955 % be a valid callback. 3 pseudo-hyperlink callbacks are obsolete.
0956 
0957 
0958 % The following are schemes, i.e. settings that are useful to carry out
0959 % specific types of experiments. Note that these will need to be modified
0960 % with the functions they reference. Some buttons will be controlled not
0961 % only by the callback and the initialisation, but also all schemes.
0962 
0963 function scheme_20_set_experiment_Callback(hObject, eventdata, handles)
0964 
0965     set(handles.determinant, 'String', '2');
0966     set(handles.show_target_option, 'Enable', 'on');
0967     set(handles.show_registration_target, 'Enable', 'on');
0968     
0969     set(handles.show_registration_target, 'Value', 1);
0970     set(handles.show_registration_target_flag, 'String', '1'); 
0971     
0972     set(handles.show_score_vs_iteration_option, 'Value', 1);
0973     set(handles.show_score_vs_iteration, 'String', '1');
0974     
0975     set(handles.show_plots_at_end_option, 'Value', 1);
0976     set(handles.plot_before_and_after, 'String', '1');
0977     
0978     set(handles.overnight1, 'Checked', 'on');
0979     set(handles.overnight2, 'Checked', 'off');
0980     set(handles.overnight3, 'Checked', 'off');
0981     set(handles.user_menus, 'Checked', 'off');
0982     set(handles.default_parameters, 'Checked', 'off');
0983     set(handles.max_test, 'Checked', 'off');
0984     set(handles.normal_test, 'Checked', 'off');
0985     set(handles.large_test, 'Checked', 'off');
0986     set(handles.large_set, 'Checked', 'off');
0987     set(handles.use_defaults, 'String', '6');
0988 
0989 
0990 function scheme_regular_set_auto_Callback(hObject, eventdata, handles)
0991 
0992     set(handles.determinant, 'String', '2');
0993     set(handles.show_target_option, 'Enable', 'on');
0994     set(handles.show_registration_target, 'Enable', 'on');
0995     
0996     set(handles.show_registration_target, 'Value', 1);
0997     set(handles.show_registration_target_flag, 'String', '1'); 
0998     
0999     set(handles.show_score_vs_iteration_option, 'Value', 1);
1000     set(handles.show_score_vs_iteration, 'String', '1');
1001     
1002     set(handles.show_plots_at_end_option, 'Value', 1);
1003     set(handles.plot_before_and_after, 'String', '1');
1004     
1005     set(handles.overnight1, 'Checked', 'off');
1006     set(handles.overnight2, 'Checked', 'on');
1007     set(handles.overnight3, 'Checked', 'off');
1008     set(handles.user_menus, 'Checked', 'off');
1009     set(handles.default_parameters, 'Checked', 'off');
1010     set(handles.max_test, 'Checked', 'off');
1011     set(handles.normal_test, 'Checked', 'off');
1012     set(handles.large_test, 'Checked', 'off');
1013     set(handles.large_set, 'Checked', 'off');
1014     set(handles.use_defaults, 'String', '7');
1015     
1016     set(handles.dynamic_precision, 'Checked', 'on');
1017     setappdata(0, 'dynamic_precision', '1');
1018 
1019 % The following function draws the data samples in the appropriate frame.
1020 % It is called from various functions when the samples need to be redrawn.
1021 
1022 function draw_data(hObject, eventdata, handles)
1023 if (str2num(get(handles.samples_flag, 'String')) == 1),
1024     n_examples = 6;
1025     resolution = 50;
1026     
1027     % the resultion is the number of pixels (horizontal) used to create the
1028     % bump and n_examples defines the number of plots to be generated.
1029     
1030     
1031     [imagelist, images, points] = make_1d_bump(n_examples, resolution, str2num(get(handles.bump_width, 'String')),...
1032         str2num(get(handles.bump_width_variation, 'String')), str2num(get(handles.bump_height, 'String')),...
1033         str2num(get(handles.bump_height_variation, 'String')), str2num(get(handles.bump_position_freedom, 'String')),...
1034         str2num(get(handles.initial_diminish_factor, 'String'))...
1035         , str2num(get(handles.smoothness_factor, 'String')), 0, get(handles.format, 'String')); % 0 means do not save images
1036     
1037     colour = [0.2,0.2,0.2]; 
1038     % a cycle of colours is defined here so that at each
1039     % iteration a different colour is picked
1040     axes(handles.samples);
1041     plot([0]);
1042     hold on;
1043     for i=1:n_examples,
1044         if (colour ==[0.2,0.2,0.2]),
1045             colour = [0.4,0.4,0.4];
1046         elseif (colour ==[0.4,0.4,0.4]),
1047             colour = [0.6,0.6,0.6];
1048         else
1049             colour = [0.2,0.2,0.2];
1050         end 
1051         plot(images(:,i),'color', colour);
1052     end
1053     axis off;
1054     % do not display the clutter around the drawing region
1055     axis([0 resolution 0 1]); % set the size of the plot
1056     hold off;
1057 end
1058 
1059 
1060 
1061 function random_option_Callback(hObject, eventdata, handles)
1062 
1063 set(handles.random_option, 'Value', 1);
1064 set(handles.edges_option, 'Value', 0);
1065 set(handles.grid_option, 'Value', 0);
1066 set(handles.random_and_Scale_option, 'Value', 0);
1067 set(handles.overlap_grid_option, 'Value', 0);
1068 set(handles.edges_and_scale_option, 'Value', 0);
1069 set(handles.alternating_grid_option, 'Value', 0);
1070 
1071 set(handles.placement_method_display, 'String', 'random');
1072 
1073 
1074 
1075 
1076 function edges_option_Callback(hObject, eventdata, handles)
1077 
1078 set(handles.random_option, 'Value', 0);
1079 set(handles.edges_option, 'Value', 1);
1080 set(handles.grid_option, 'Value', 0);
1081 set(handles.random_and_Scale_option, 'Value', 0);
1082 set(handles.overlap_grid_option, 'Value', 0);
1083 set(handles.edges_and_scale_option, 'Value', 0);
1084 set(handles.alternating_grid_option, 'Value', 0);
1085 
1086 set(handles.placement_method_display, 'String', 'edge');
1087 
1088 
1089 
1090 
1091 
1092 function grid_option_Callback(hObject, eventdata, handles)
1093 
1094 set(handles.random_option, 'Value', 0);
1095 set(handles.edges_option, 'Value', 0);
1096 set(handles.grid_option, 'Value', 1);
1097 set(handles.random_and_Scale_option, 'Value', 0);
1098 set(handles.overlap_grid_option, 'Value', 0);
1099 set(handles.edges_and_scale_option, 'Value', 0);
1100 set(handles.alternating_grid_option, 'Value', 0);
1101 
1102 set(handles.placement_method_display, 'String', 'grid');
1103 
1104 
1105 
1106 
1107 
1108 function random_and_Scale_option_Callback(hObject, eventdata, handles)
1109 
1110 set(handles.random_option, 'Value', 0);
1111 set(handles.edges_option, 'Value', 0);
1112 set(handles.grid_option, 'Value', 0);
1113 set(handles.random_and_Scale_option, 'Value', 1);
1114 set(handles.overlap_grid_option, 'Value', 0);
1115 set(handles.edges_and_scale_option, 'Value', 0);
1116 set(handles.alternating_grid_option, 'Value', 0);
1117 
1118 set(handles.placement_method_display, 'String', 'random_and_scale');
1119 
1120 
1121 
1122 function alternating_grid_option_Callback(hObject, eventdata, handles)
1123 
1124 set(handles.random_option, 'Value', 0);
1125 set(handles.edges_option, 'Value', 0);
1126 set(handles.grid_option, 'Value', 0);
1127 set(handles.random_and_Scale_option, 'Value', 0);
1128 set(handles.overlap_grid_option, 'Value', 0);
1129 set(handles.edges_and_scale_option, 'Value', 0);
1130 set(handles.alternating_grid_option, 'Value', 1);
1131 
1132 set(handles.placement_method_display, 'String', 'alternating_grid');
1133 
1134 
1135 
1136 function single_point_option_Callback(hObject, eventdata, handles)
1137 
1138 set(handles.single_point_option, 'Value', 1);
1139 set(handles.multi_point_option, 'Value', 0);
1140 
1141 
1142 set(handles.random_option, 'Enable', 'off');
1143 set(handles.edges_option, 'Enable', 'off');
1144 set(handles.grid_option, 'Enable', 'off');
1145 set(handles.alternating_grid_option, 'Enable', 'off');
1146 
1147 set(handles.random_and_Scale_option, 'Enable', 'on');
1148 set(handles.overlap_grid_option, 'Enable', 'on');
1149 set(handles.edges_and_scale_option, 'Enable', 'on');
1150 
1151 set(handles.random_and_Scale_option, 'Value', 1);
1152 set(handles.random_option, 'Value', 0);
1153 set(handles.edges_option, 'Value', 0);
1154 set(handles.grid_option, 'Value', 0);
1155 set(handles.overlap_grid_option, 'Value', 0);
1156 set(handles.edges_and_scale_option, 'Value', 0);
1157 set(handles.alternating_grid_option, 'Value', 0);
1158 set(handles.placement_method_display, 'String', 'random_and_scale');
1159 set(handles.spline_type_display, 'String', 'single_point');
1160 
1161 
1162 
1163 function multi_point_option_Callback(hObject, eventdata, handles)
1164 
1165 set(handles.single_point_option, 'Value', 0);
1166 set(handles.multi_point_option, 'Value', 1);
1167 set(handles.spline_type_display, 'String', 'multi_point');
1168 set(handles.random_option, 'Enable', 'on');
1169 set(handles.edges_option, 'Enable', 'on');
1170 set(handles.grid_option, 'Enable', 'on');
1171 set(handles.random_and_Scale_option, 'Enable', 'off');
1172 set(handles.overlap_grid_option, 'Enable', 'off');
1173 set(handles.edges_and_scale_option, 'Enable', 'off');
1174 set(handles.alternating_grid_option, 'Enable', 'on');
1175 set(handles.random_and_Scale_option, 'Value', 0);
1176 set(handles.random_option, 'Value', 1);
1177 set(handles.edges_option, 'Value', 0);
1178 set(handles.grid_option, 'Value', 0);
1179 set(handles.overlap_grid_option, 'Value', 0);
1180 set(handles.edges_and_scale_option, 'Value', 0);
1181 set(handles.alternating_grid_option, 'Value', 0);
1182 set(handles.placement_method_display, 'String', 'random');
1183 
1184 
1185 
1186 
1187 function overlap_grid_option_Callback(hObject, eventdata, handles)
1188 
1189 set(handles.random_option, 'Value', 0);
1190 set(handles.edges_option, 'Value', 0);
1191 set(handles.grid_option, 'Value', 0);
1192 set(handles.random_and_Scale_option, 'Value', 0);
1193 set(handles.overlap_grid_option, 'Value', 1);
1194 set(handles.edges_and_scale_option, 'Value', 0);
1195 set(handles.alternating_grid_option, 'Value', 0);
1196 
1197 set(handles.placement_method_display, 'String', 'overlap_grid');
1198 
1199 
1200 
1201 
1202 function edges_and_scale_option_Callback(hObject, eventdata, handles)
1203 
1204 set(handles.random_option, 'Value', 0);
1205 set(handles.edges_option, 'Value', 0);
1206 set(handles.grid_option, 'Value', 0);
1207 set(handles.random_and_Scale_option, 'Value', 0);
1208 set(handles.overlap_grid_option, 'Value', 0);
1209 set(handles.edges_and_scale_option, 'Value', 1);
1210 set(handles.alternating_grid_option, 'Value', 0);
1211 
1212 set(handles.placement_method_display, 'String', 'edge_and_scale');
1213 
1214 
1215 
1216 
1217 function apply_corrective_offset_option_Callback(hObject, eventdata, handles)
1218 
1219 if (get(handles.apply_corrective_offset_option,'Value') == 0),
1220     set(handles.apply_corrective_offset_option, 'Value', 0);
1221     set(handles.apply_corrective_offset, 'String', '0');
1222 else
1223     set(handles.apply_corrective_offset_option, 'Value', 1);
1224     set(handles.apply_corrective_offset, 'String', '1');  
1225 end    
1226 
1227 
1228 
1229 
1230 function show_plots_throughout_option_Callback(hObject, eventdata, handles)
1231 
1232 if (get(handles.show_plots_throughout_option,'Value') == 0),
1233     set(handles.show_plots_throughout_option, 'Value', 0);
1234     set(handles.show_plot, 'String', '0');
1235 else
1236     set(handles.show_plots_throughout_option, 'Value', 1);
1237     set(handles.show_plot, 'String', '1');  
1238 end    
1239 
1240 
1241 
1242 
1243 function show_pixels_throughout_option_Callback(hObject, eventdata, handles)
1244 
1245 if (get(handles.show_pixels_throughout_option,'Value') == 0),
1246     set(handles.show_pixels_throughout_option, 'Value', 0);
1247     set(handles.show_pixels, 'String', '0');
1248 else
1249     set(handles.show_pixels_throughout_option, 'Value', 1);
1250     set(handles.show_pixels, 'String', '1');
1251 end    
1252 
1253 
1254 
1255 
1256 function save_video_option_Callback(hObject, eventdata, handles)
1257 
1258 if (get(handles.save_video_option,'Value') == 0),
1259     set(handles.save_video_option, 'Value', 0);
1260     set(handles.save_video, 'String', '0');  
1261     set(handles.save_plots_option, 'Enable', 'off');
1262     set(handles.save_pixels_option, 'Enable', 'off');
1263     set(handles.save_mesh_option, 'Enable', 'off');
1264     set(handles.save_model_option, 'Enable', 'off');    
1265     set(handles.filename_option, 'Enable', 'off');
1266 else
1267     set(handles.save_video_option, 'Value', 1);
1268     set(handles.save_video, 'String', '1'); 
1269     set(handles.save_plots_option, 'Enable', 'on');
1270     set(handles.save_model_option, 'Enable', 'on');    
1271      set(handles.save_mesh_option, 'Enable', 'on');
1272     set(handles.save_pixels_option, 'Enable', 'on');
1273     set(handles.filename_option, 'Enable', 'on');
1274 end
1275 
1276 if (get(handles.filename_option,'Value') == 0),
1277     set(handles.file_for_video_box, 'Enable', 'off');
1278 else
1279     set(handles.file_for_video_box, 'Enable', 'on'); 
1280 end
1281 
1282 
1283 
1284 
1285 
1286 function find_specificity_option_Callback(hObject, eventdata, handles)
1287 
1288 if (get(handles.find_specificity_option,'Value') == 0),
1289     set(handles.find_specificity_option, 'Value', 0);
1290     set(handles.find_specificity, 'String', '0');
1291 else
1292     set(handles.find_specificity_option, 'Value', 1);
1293     set(handles.find_specificity, 'String', '1');  
1294 end    
1295 
1296 
1297 
1298 
1299 function repeatedly_show_model_option_Callback(hObject, eventdata, handles)
1300 
1301 if (get(handles.repeatedly_show_model_option,'Value') == 0),
1302     set(handles.repeatedly_show_model_option, 'Value', 0);
1303     set(handles.repeatedly_show_model, 'String', '0');
1304 else
1305     set(handles.repeatedly_show_model_option, 'Value', 1);
1306     set(handles.repeatedly_show_model, 'String', '1');  
1307 end    
1308 
1309 
1310 
1311 
1312 function show_final_model_option_Callback(hObject, eventdata, handles)
1313 if (get(handles.show_final_model_option,'Value') == 0),
1314     set(handles.show_final_model_option, 'Value', 0);
1315     set(handles.show_final_model, 'String', '0');
1316 else
1317     set(handles.show_final_model_option, 'Value', 1);
1318     set(handles.show_final_model, 'String', '1');  
1319 end    
1320 
1321 
1322 
1323 
1324 function show_score_vs_iteration_option_Callback(hObject, eventdata, handles)
1325 
1326 if (get(handles.show_score_vs_iteration_option,'Value') == 0),
1327     set(handles.show_score_vs_iteration_option, 'Value', 0);
1328     set(handles.show_score_vs_iteration, 'String', '0');
1329 else
1330     set(handles.show_score_vs_iteration_option, 'Value', 1);
1331     set(handles.show_score_vs_iteration, 'String', '1');  
1332 end   
1333 
1334 
1335 
1336 
1337 
1338 function show_score_while_optimising_option_Callback(hObject, eventdata, handles)
1339 
1340 if (get(handles.show_score_while_optimising_option,'Value') == 0),
1341     set(handles.show_score_while_optimising_option, 'Value', 0);
1342     set(handles.show_score_while_optimising, 'String', '0');
1343 else
1344     set(handles.show_score_while_optimising_option, 'Value', 1);
1345     set(handles.show_score_while_optimising, 'String', '1');  
1346 end
1347 
1348 
1349 
1350 function show_statistics_option_Callback(hObject, eventdata, handles)
1351 
1352 if (get(handles.show_statistics_option,'Value') == 0),
1353     set(handles.show_statistics_option, 'Value', 0);
1354     set(handles.show_statistics, 'String', '0');
1355 else
1356     set(handles.show_statistics_option, 'Value', 1);
1357     set(handles.show_statistics, 'String', '1');  
1358 end    
1359 
1360 
1361 
1362 
1363 function save_plots_option_Callback(hObject, eventdata, handles)
1364 
1365 set(handles.save_plots_option, 'Value', 1);
1366 set(handles.save_pixels_option, 'Value', 0);
1367 set(handles.save_mesh_option, 'Value', 0);
1368 set(handles.save_model_option, 'Value', 0);
1369 
1370 set(handles.save_pixels, 'String', '1');
1371 
1372 
1373 
1374 
1375 function save_pixels_option_Callback(hObject, eventdata, handles)
1376 
1377 
1378 set(handles.save_plots_option, 'Value', 0);
1379 set(handles.save_pixels_option, 'Value', 1);
1380 set(handles.save_mesh_option, 'Value', 0);
1381 set(handles.save_model_option, 'Value', 0);
1382 
1383 set(handles.save_pixels, 'String', '0');
1384 
1385 
1386 
1387 
1388 
1389 
1390 function Help_Callback(hObject, eventdata, handles)
1391 
1392 
1393 
1394 
1395 
1396 function File_Callback(hObject, eventdata, handles)
1397 
1398 
1399 
1400 
1401 
1402 function Exit_Callback(hObject, eventdata, handles)
1403 
1404 
1405 close;
1406 
1407 
1408 
1409 
1410 function About_Callback(hObject, eventdata, handles)
1411 
1412 message = [['Autonomous Appearance-based Registration Test-bed  '];
1413     ['Imaging Science and Biomedical Engineering         '];
1414     ['Victoria University of Manchester                  '];    
1415     ['Version ',[get_version],'                                      '];
1416     ['                                                   '];
1417     ['Primary implementation: Katherine Smith            '];
1418     ['                                                   '];
1419     ['Modifications and package assembly: Roy Schestowitz'];
1420     ['                                                   '];
1421     ['Project supervisor: Chris Taylor                   '];
1422     ['                                                   ']];    
1423 
1424 
1425 msgbox(message ,'About AART');
1426 
1427 
1428 
1429 function reset_Callback(hObject, eventdata, handles)
1430 
1431 % reset invocation should result in the application returning to its
1432 % starting state
1433 
1434 initialize_gui(hObject, handles);
1435 
1436 
1437 
1438 
1439 
1440 function Matlab_Help_Callback(hObject, eventdata, handles)
1441 
1442 % the internal helpdesk for MATLAB
1443 
1444 helpdesk;
1445 
1446 
1447 
1448 function filename_option_Callback(hObject, eventdata, handles)
1449 
1450 if (get(handles.filename_option,'Value') == 0),
1451     set(handles.filename_option, 'Value', 0);
1452     set(handles.use_filename, 'String', '0');
1453     set(handles.file_for_video_box, 'Enable', 'off');
1454 else
1455     set(handles.filename_option, 'Value', 1);
1456     set(handles.use_filename, 'String', '1'); 
1457     set(handles.file_for_video_box, 'Enable', 'on');
1458 end  
1459 
1460 
1461 
1462 
1463 
1464 function file_for_video_box_CreateFcn(hObject, eventdata, handles)
1465 
1466 
1467 if ispc
1468     set(hObject,'BackgroundColor','white');
1469 else
1470     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1471 end
1472 
1473 
1474 
1475 
1476 
1477 function file_for_video_box_Callback(hObject, eventdata, handles)
1478 
1479 
1480 
1481 
1482 
1483 function smoothing_disabled_option_Callback(hObject, eventdata, handles)
1484 
1485 set(handles.smoothing_disabled_option, 'Value', 1);
1486 set(handles.gaussian_smoothing_option, 'Value', 0);
1487 set(handles.average_smoothing_option, 'Value', 0);
1488 set(handles.gaussian_smoothing, 'String', '0');
1489 set(handles.average_smoothing, 'String', '0');
1490 set(handles.smoothing_slider, 'Enable', 'off');
1491 set(handles.window_size, 'String', '');
1492 set(handles.window, 'String', '');
1493 
1494 
1495 
1496 
1497 
1498 function gaussian_smoothing_option_Callback(hObject, eventdata, handles)
1499 
1500 set(handles.smoothing_disabled_option, 'Value', 0);
1501 set(handles.gaussian_smoothing_option, 'Value', 1);
1502 set(handles.average_smoothing_option, 'Value', 0);
1503 set(handles.gaussian_smoothing, 'String', '1');
1504 set(handles.average_smoothing, 'String', '0');
1505 set(handles.smoothing_slider, 'Enable', 'on');
1506 set(handles.window, 'String', num2str(ceil(get(handles.smoothing_slider, 'Value'))));
1507 set(handles.window_size, 'String', 'Sigma:');
1508 
1509 
1510 
1511 
1512 
1513 function average_smoothing_option_Callback(hObject, eventdata, handles)
1514 
1515 
1516 set(handles.smoothing_disabled_option, 'Value', 0);
1517 set(handles.gaussian_smoothing_option, 'Value', 0);
1518 set(handles.average_smoothing_option, 'Value', 1);
1519 set(handles.average_smoothing, 'String', '1');
1520 set(handles.gaussian_smoothing, 'String', '0');
1521 set(handles.smoothing_slider, 'Enable', 'on');
1522 set(handles.window, 'String', num2str(ceil(get(handles.smoothing_slider, 'Value'))));
1523 set(handles.window_size, 'String', 'Window size:');
1524 
1525 
1526 
1527 
1528 
1529 function smoothing_slider_CreateFcn(hObject, eventdata, handles)
1530 
1531 
1532 usewhitebg = 1;
1533 if usewhitebg
1534     set(hObject,'BackgroundColor',[.9 .9 .9]);
1535 else
1536     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1537 end
1538 
1539 
1540 
1541 
1542 
1543 
1544 function smoothing_slider_Callback(hObject, eventdata, handles)
1545 
1546 
1547 set(handles.window, 'String', num2str(ceil(get(handles.smoothing_slider, 'Value'))));
1548 
1549 
1550 
1551 
1552 
1553 
1554 function status_bar_CreateFcn(hObject, eventdata, handles)
1555 
1556 
1557 if ispc
1558     set(hObject,'BackgroundColor','white');
1559 else
1560     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1561 end
1562 
1563 
1564 
1565 
1566 
1567 
1568 function status_bar_Callback(hObject, eventdata, handles)
1569 
1570 
1571 
1572 
1573 
1574 function popupmenu2_CreateFcn(hObject, eventdata, handles)
1575 
1576 if ispc
1577     set(hObject,'BackgroundColor','white');
1578 else
1579     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1580 end
1581 
1582 function popupmenu2_Callback(hObject, eventdata, handles)
1583 
1584 function popupmenu3_CreateFcn(hObject, eventdata, handles)
1585 
1586 if ispc
1587     set(hObject,'BackgroundColor','white');
1588 else
1589     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1590 end
1591 
1592 
1593 
1594 
1595 
1596 function popupmenu3_Callback(hObject, eventdata, handles)
1597 
1598 
1599 
1600 
1601 function default_attributes_Callback(hObject, eventdata, handles)
1602 
1603 % disable all the bars and set values to defaults before re-drawing
1604 
1605 set(handles.default_attributes, 'Value', 1);
1606 set(handles.specify_attributes, 'Value', 0);
1607 
1608 set(handles.attr_height, 'Enable', 'off');
1609 set(handles.attr_low_var, 'Enable', 'off');
1610 set(handles.attr_typical, 'Enable', 'off');
1611 
1612 set(handles.base_height_slider, 'Enable', 'off');
1613 set(handles.position_freedom_slider, 'Enable', 'off');
1614 set(handles.height_variation_slider, 'Enable', 'off');
1615 set(handles.width_variation_slider, 'Enable', 'off');
1616 set(handles.base_width_slider, 'Enable', 'off');
1617 set(handles.smoothness_slider, 'Enable', 'off');
1618 set(handles.base_height_text, 'Enable', 'off');
1619 set(handles.width_variation_text, 'Enable', 'off');
1620 set(handles.height_variation_text, 'Enable', 'off');
1621 set(handles.base_width_text, 'Enable', 'off');
1622 set(handles.position_freedom_text, 'Enable', 'off');
1623 set(handles.smoothness_text, 'Enable', 'off');
1624 
1625 set(handles.bump_width, 'String', '0.5');
1626 set(handles.bump_width_variation, 'String', '0.2');
1627 set(handles.bump_height, 'String', '0.2');
1628 set(handles.bump_height_variation, 'String', '0.7');
1629 set(handles.bump_position_freedom, 'String', '0.9');
1630 set(handles.initial_diminish_factor, 'String', '1');
1631 set(handles.smoothness_factor, 'String', '17');
1632 
1633 
1634 
1635 
1636 draw_data(hObject, eventdata, handles);
1637 
1638 
1639 
1640 
1641 
1642 function specify_attributes_Callback(hObject, eventdata, handles)
1643 
1644 set(handles.default_attributes, 'Value', 0);
1645 set(handles.specify_attributes, 'Value', 1);
1646 set(handles.base_height_text, 'Enable', 'on');
1647 set(handles.width_variation_text, 'Enable', 'on');
1648 set(handles.height_variation_text, 'Enable', 'on');
1649 set(handles.base_width_text, 'Enable', 'on');
1650 set(handles.position_freedom_text, 'Enable', 'on');
1651 set(handles.smoothness_text, 'Enable', 'on');
1652 set(handles.base_height_slider, 'Enable', 'on');
1653 set(handles.position_freedom_slider, 'Enable', 'on');
1654 set(handles.height_variation_slider, 'Enable', 'on');
1655 set(handles.width_variation_slider, 'Enable', 'on');
1656 set(handles.base_width_slider, 'Enable', 'on');
1657 set(handles.smoothness_slider, 'Enable', 'on');
1658 
1659 set(handles.attr_height, 'Enable', 'on');
1660 set(handles.attr_low_var, 'Enable', 'on');
1661 set(handles.attr_typical, 'Enable', 'on');
1662 
1663 set(handles.bump_height, 'String', num2str(get(handles.base_height_slider, 'Value')));
1664 set(handles.bump_position_freedom, 'String', num2str(get(handles.position_freedom_slider, 'Value')));
1665 set(handles.bump_height_variation, 'String', num2str(get(handles.height_variation_slider, 'Value')));
1666 set(handles.bump_width_variation, 'String', num2str(get(handles.width_variation_slider, 'Value')));
1667 set(handles.bump_width, 'String', num2str(get(handles.base_width_slider, 'Value')));
1668 set(handles.smoothness_factor, 'String', num2str(get(handles.smoothness_slider, 'Value')));
1669 
1670 draw_data(hObject, eventdata, handles);
1671 
1672 
1673 
1674 
1675 function popupmenu4_CreateFcn(hObject, eventdata, handles)
1676 
1677 if ispc
1678     set(hObject,'BackgroundColor','white');
1679 else
1680     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1681 end
1682 
1683 
1684 
1685 
1686 function radiobutton44_Callback(hObject, eventdata, handles)
1687 
1688 
1689 
1690 
1691 
1692 function radiobutton45_Callback(hObject, eventdata, handles)
1693 
1694 
1695 
1696 
1697 
1698 function base_height_slider_CreateFcn(hObject, eventdata, handles)
1699 
1700 usewhitebg = 1;
1701 if usewhitebg
1702     set(hObject,'BackgroundColor',[.9 .9 .9]);
1703 else
1704     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1705 end
1706 
1707 
1708 
1709 
1710 
1711 
1712 function base_height_slider_Callback(hObject, eventdata, handles)
1713 
1714 set(handles.bump_height, 'String', num2str(get(handles.base_height_slider, 'Value')));
1715 draw_data(hObject, eventdata, handles);
1716 
1717 
1718 
1719 
1720 
1721 
1722 function position_freedom_slider_CreateFcn(hObject, eventdata, handles)
1723 
1724 usewhitebg = 1;
1725 if usewhitebg
1726     set(hObject,'BackgroundColor',[.9 .9 .9]);
1727 else
1728     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1729 end
1730 
1731 
1732 
1733 
1734 function position_freedom_slider_Callback(hObject, eventdata, handles)
1735 
1736 set(handles.bump_position_freedom, 'String', num2str(get(handles.position_freedom_slider, 'Value')));
1737 draw_data(hObject, eventdata, handles);
1738 
1739 
1740 
1741 
1742 
1743 function height_variation_slider_CreateFcn(hObject, eventdata, handles)
1744 
1745 usewhitebg = 1;
1746 if usewhitebg
1747     set(hObject,'BackgroundColor',[.9 .9 .9]);
1748 else
1749     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1750 end
1751 
1752 
1753 
1754 
1755 function height_variation_slider_Callback(hObject, eventdata, handles)
1756 
1757 set(handles.bump_height_variation, 'String', num2str(get(handles.height_variation_slider, 'Value')));
1758 draw_data(hObject, eventdata, handles);
1759 
1760 
1761 
1762 function width_variation_slider_CreateFcn(hObject, eventdata, handles)
1763 
1764 
1765 usewhitebg = 1;
1766 if usewhitebg
1767     set(hObject,'BackgroundColor',[.9 .9 .9]);
1768 else
1769     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1770 end
1771 
1772 
1773 
1774 
1775 
1776 function width_variation_slider_Callback(hObject, eventdata, handles)
1777 
1778 set(handles.bump_width_variation, 'String', num2str(get(handles.width_variation_slider, 'Value')));
1779 draw_data(hObject, eventdata, handles);
1780 
1781 
1782 
1783 
1784 function base_width_slider_CreateFcn(hObject, eventdata, handles)
1785 
1786 
1787 usewhitebg = 1;
1788 if usewhitebg
1789     set(hObject,'BackgroundColor',[.9 .9 .9]);
1790 else
1791     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1792 end
1793 
1794 
1795 
1796 
1797 
1798 function base_width_slider_Callback(hObject, eventdata, handles)
1799 
1800 set(handles.bump_width, 'String', num2str(get(handles.base_width_slider, 'Value')));
1801 draw_data(hObject, eventdata, handles);
1802 
1803 
1804 
1805 function Using_AART_Callback(hObject, eventdata, handles)
1806 
1807 web http://www.danielsorogon.com/Webmaster/Projects/AART/help.htm
1808 
1809 
1810 
1811 
1812 
1813 
1814 function Quit_MATLAB_Callback(hObject, eventdata, handles)
1815 
1816 exit;
1817 
1818 
1819 
1820 
1821 function bug_Callback(hObject, eventdata, handles)
1822 
1823 
1824 web http://www.danielsorogon.com/Webmaster/fback.htm
1825 
1826 
1827 
1828 
1829 function view_Callback(hObject, eventdata, handles)
1830 
1831 
1832 
1833 
1834 
1835 function tools_Callback(hObject, eventdata, handles)
1836 
1837 
1838 
1839 
1840 function smoothness_slider_CreateFcn(hObject, eventdata, handles)
1841 
1842 usewhitebg = 1;
1843 if usewhitebg
1844     set(hObject,'BackgroundColor',[.9 .9 .9]);
1845 else
1846     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1847 end
1848 
1849 
1850 
1851 
1852 function smoothness_slider_Callback(hObject, eventdata, handles)
1853 
1854 set(handles.smoothness_factor, 'String', num2str(get(handles.smoothness_slider, 'Value')));
1855 draw_data(hObject, eventdata, handles);
1856 
1857 
1858 
1859 
1860 function exit_button_Callback(hObject, eventdata, handles)
1861 
1862 close;
1863 
1864 
1865 
1866 
1867 
1868 function show_plots_at_end_option_Callback(hObject, eventdata, handles)
1869 
1870 
1871 if (get(handles.show_plots_at_end_option,'Value') == 0),
1872     set(handles.show_plots_at_end_option, 'Value', 0);
1873     set(handles.plot_before_and_after, 'String', '0');
1874 else
1875     set(handles.show_plots_at_end_option, 'Value', 1);
1876     set(handles.plot_before_and_after, 'String', '1');  
1877 end
1878 
1879 
1880 
1881 
1882 
1883 function aart_on_line_Callback(hObject, eventdata, handles)
1884 
1885 web http://www.danielsorogon.com/Webmaster/Projects/AART
1886 
1887 
1888 
1889 
1890 
1891 function number_of_bins_slider_CreateFcn(hObject, eventdata, handles)
1892 
1893 usewhitebg = 1;
1894 if usewhitebg
1895     set(hObject,'BackgroundColor',[.9 .9 .9]);
1896 else
1897     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1898 end
1899 
1900 
1901 
1902 
1903 
1904 function number_of_bins_slider_Callback(hObject, eventdata, handles)
1905 
1906 
1907 set(handles.number_of_bins, 'String', num2str(ceil(get(handles.number_of_bins_slider, 'Value'))));
1908 
1909 
1910 
1911 
1912 
1913 
1914 function always_score_by_model_option_Callback(hObject, eventdata, handles)
1915 
1916 set(handles.always_score_by_model, 'String', '0');
1917 if (get(handles.always_score_by_model_option,'Value') == 0),
1918     set(handles.always_score_by_model_option, 'Value', 0);
1919     set(handles.always_score_by_model, 'String', '0');
1920     set(handles.score_model_by_menu, 'Enable', 'off');
1921     set(handles.cycle, 'Enable', 'off');
1922     set(handles.cycle_slider, 'Enable', 'off');
1923     set(handles.cycle_label, 'Enable', 'off');
1924 else
1925     set(handles.always_score_by_model_option, 'Value', 1);
1926     set(handles.always_score_by_model, 'String', '1');
1927     set(handles.score_model_by_menu, 'Enable', 'on');
1928     set(handles.cycle, 'Enable', 'on');
1929     set(handles.cycle_slider, 'Enable', 'on');
1930     set(handles.cycle_label, 'Enable', 'on');
1931 end
1932 
1933 
1934 
1935 
1936 function filename_handle_CreateFcn(hObject, eventdata, handles)
1937 
1938 if ispc
1939     set(hObject,'BackgroundColor','white');
1940 else
1941     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
1942 end
1943 
1944 
1945 
1946 
1947 
1948 function filename_handle_Callback(hObject, eventdata, handles)
1949 
1950 
1951 
1952 
1953 function pause_Callback(hObject, eventdata, handles)
1954 
1955 
1956 set(handles.pause, 'Enable', 'off');
1957 set(handles.resume, 'Enable', 'on');
1958 set(handles.status_bar, 'String', 'Registration paused');
1959 uiwait;
1960 
1961 
1962 
1963 
1964 function resume_Callback(hObject, eventdata, handles)
1965 
1966 
1967 set(handles.pause, 'Enable', 'on');
1968 set(handles.resume, 'Enable', 'off');
1969 uiresume;
1970 set(handles.status_bar, 'String', 'Registration in progress...');
1971 
1972 
1973 
1974 function help_button_Callback(hObject, eventdata, handles)
1975 
1976 web http://www.danielsorogon.com/Webmaster/Projects/AART/help.htm
1977 
1978 
1979 
1980 function constant_Callback(hObject, eventdata, handles)
1981 
1982 set(handles.constant, 'Value', 1);
1983 set(handles.edge, 'Value', 0);
1984 set(handles.variance, 'Value', 0);
1985 set(handles.text108, 'String', 'constant');
1986 set(handles.model_weight_slider, 'Enable', 'on');
1987 
1988 set(handles.model_weight_constant_value, 'Enable', 'on');
1989 set(handles.constant_value_text, 'Enable', 'on');
1990 
1991 
1992 
1993 
1994 
1995 function edge_Callback(hObject, eventdata, handles)
1996 
1997 
1998 set(handles.constant, 'Value', 0);
1999 set(handles.edge, 'Value', 1);
2000 set(handles.variance, 'Value', 0);
2001 set(handles.text108, 'String', 'edge');
2002 set(handles.model_weight_slider, 'Enable', 'off');
2003 set(handles.model_weight_constant_value, 'Enable', 'off');
2004 set(handles.constant_value_text, 'Enable', 'off');
2005 
2006 
2007 
2008 
2009 
2010 function variance_Callback(hObject, eventdata, handles)
2011 
2012 
2013 set(handles.constant, 'Value', 0);
2014 set(handles.edge, 'Value', 0);
2015 set(handles.variance, 'Value', 1);
2016 set(handles.text108, 'String', 'variance');
2017 set(handles.model_weight_slider, 'Enable', 'off');
2018 
2019 set(handles.model_weight_constant_value, 'Enable', 'off');
2020 set(handles.constant_value_text, 'Enable', 'off');
2021 
2022 
2023 
2024 
2025 function number_of_modes_slider_CreateFcn(hObject, eventdata, handles)
2026 
2027 usewhitebg = 1;
2028 if usewhitebg
2029     set(hObject,'BackgroundColor',[.9 .9 .9]);
2030 else
2031     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2032 end
2033 
2034 
2035 
2036 function number_of_modes_slider_Callback(hObject, eventdata, handles)
2037 
2038 
2039 set(handles.number_of_modes_display, 'String', num2str(ceil(get(handles.number_of_modes_slider, 'Value'))));
2040 
2041 
2042 
2043 function model_weight_slider_CreateFcn(hObject, eventdata, handles)
2044 
2045 usewhitebg = 1;
2046 if usewhitebg
2047     set(hObject,'BackgroundColor',[.9 .9 .9]);
2048 else
2049     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2050 end
2051 
2052 
2053 
2054 function model_weight_slider_Callback(hObject, eventdata, handles)
2055 
2056 set(handles.model_weight_constant_value, 'String', num2str(get(handles.model_weight_slider, 'Value')));
2057 
2058 
2059 
2060 
2061 function variation_kept_slider_CreateFcn(hObject, eventdata, handles)
2062 
2063 
2064 
2065 usewhitebg = 1;
2066 if usewhitebg
2067     set(hObject,'BackgroundColor',[.9 .9 .9]);
2068 else
2069     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2070 end
2071 
2072 
2073 
2074 function variation_kept_slider_Callback(hObject, eventdata, handles)
2075 
2076 
2077 set(handles.variatyion_kept_display, 'String', num2str(get(handles.variation_kept_slider, 'Value')));
2078 
2079 
2080 
2081 
2082 
2083 
2084 function data_samples_Callback(hObject, eventdata, handles)
2085 
2086 
2087 
2088 
2089 
2090 
2091 function disable_samples_Callback(hObject, eventdata, handles)
2092 
2093 set(handles.samples_flag, 'String', '0');
2094 set(handles.enable_samples, 'Checked', 'off');
2095 set(handles.disable_samples, 'Checked', 'on');
2096 samples = imread('samples.tif');
2097 axes(handles.samples);
2098 axis off;
2099 imshow(samples,[0,255]);
2100 
2101 
2102 
2103 
2104 
2105 function enable_samples_Callback(hObject, eventdata, handles)
2106 
2107 set(handles.samples_flag, 'String', '1');
2108 draw_data(hObject, eventdata, handles);
2109 
2110 set(handles.enable_samples, 'Checked', 'on');
2111 set(handles.disable_samples, 'Checked', 'off');
2112 
2113 
2114 
2115 
2116 
2117 function Evaluation_menu_CreateFcn(hObject, eventdata, handles)
2118 
2119 
2120 if ispc
2121     set(hObject,'BackgroundColor','white');
2122 else
2123     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2124 end
2125 
2126 
2127 
2128 
2129 
2130 function Evaluation_menu_Callback(hObject, eventdata, handles)
2131 
2132 contents = get(hObject,'String');
2133 if (strcmp(contents{get(hObject,'Value')},'Determinant')),
2134     set(handles.show_target_option, 'Enable', 'off');
2135     set(handles.show_registration_target, 'Enable', 'off');
2136     set(handles.show_registration_target, 'Value', 0);
2137     set(handles.show_target_option, 'Value', 0);
2138     set(handles.show_target, 'String', '0');
2139     set(handles.show_registration_target_flag, 'String', '0');
2140     set(handles.determinant, 'String', '1');
2141 elseif (strcmp(contents{get(hObject,'Value')},'MDL')),
2142     set(handles.show_target_option, 'Enable', 'off');
2143     set(handles.show_registration_target, 'Enable', 'off');
2144     set(handles.show_registration_target, 'Value', 0);
2145     set(handles.show_target_option, 'Value', 0);
2146     set(handles.show_target, 'String', '0');
2147     set(handles.show_registration_target_flag, 'String', '0');
2148     set(handles.determinant, 'String', '0');
2149 elseif (strcmp(contents{get(hObject,'Value')},'Sum Log Eigenvalues')),
2150     set(handles.determinant, 'String', '2');
2151     set(handles.show_target_option, 'Enable', 'on');
2152     set(handles.show_registration_target, 'Enable', 'on');
2153 elseif (strcmp(contents{get(hObject,'Value')},'Specificity')),
2154     set(handles.show_target_option, 'Enable', 'off');
2155     set(handles.show_registration_target, 'Enable', 'off');
2156     set(handles.show_registration_target, 'Value', 0);
2157     set(handles.show_target_option, 'Value', 0);
2158     set(handles.show_target, 'String', '0');
2159     set(handles.show_registration_target_flag, 'String', '0');
2160     set(handles.determinant, 'String', '3');
2161 elseif (strcmp(contents{get(hObject,'Value')},'Generalisability')),
2162     set(handles.show_target_option, 'Enable', 'off');
2163     set(handles.show_registration_target, 'Enable', 'off');
2164     set(handles.show_registration_target, 'Value', 0);
2165     set(handles.show_target_option, 'Value', 0);
2166     set(handles.show_target, 'String', '0');
2167     set(handles.show_registration_target_flag, 'String', '0');
2168     set(handles.determinant, 'String', '4');      
2169 else
2170     msgbox('Error with menu callback');
2171 end
2172 
2173 
2174 
2175 
2176 
2177 
2178 function PDF_CreateFcn(hObject, eventdata, handles)
2179 
2180 if ispc
2181     set(hObject,'BackgroundColor','white');
2182 else
2183     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2184 end
2185 
2186 
2187 
2188 
2189 
2190 
2191 function PDF_Callback(hObject, eventdata, handles)
2192 
2193 contents = get(hObject,'String');
2194 
2195 if (strcmp(contents{get(hObject,'Value')},'Exponential')),
2196     set(handles.pdf, 'String', 'Exponential');
2197 elseif (strcmp(contents{get(hObject,'Value')},'Poisson')),
2198     set(handles.pdf, 'String', 'Poisson');
2199 elseif (strcmp(contents{get(hObject,'Value')},'Normal')),
2200     set(handles.pdf, 'String', 'Normal');
2201 elseif (strcmp(contents{get(hObject,'Value')},'Beta')),
2202     set(handles.pdf, 'String', 'Beta');
2203 elseif (strcmp(contents{get(hObject,'Value')},'Binomial')),
2204     set(handles.pdf, 'String', 'Binomial');
2205 elseif (strcmp(contents{get(hObject,'Value')},'Chisquare')),
2206     set(handles.pdf, 'String', 'Chisquare');
2207 elseif (strcmp(contents{get(hObject,'Value')},'F')),
2208     set(handles.pdf, 'String', 'F');
2209 elseif (strcmp(contents{get(hObject,'Value')},'Gamma')),
2210     set(handles.pdf, 'String', 'Gamma');
2211 elseif (strcmp(contents{get(hObject,'Value')},'Geometric')),
2212     set(handles.pdf, 'String', 'Geometric');
2213 elseif (strcmp(contents{get(hObject,'Value')},'Hypergeometric')),
2214     set(handles.pdf, 'String', 'Hypergeometric');
2215 elseif (strcmp(contents{get(hObject,'Value')},'Lognormal')),
2216     set(handles.pdf, 'String', 'Lognormal');   
2217 elseif (strcmp(contents{get(hObject,'Value')},'Negative Binomial')),
2218     set(handles.pdf, 'String', 'Negative Binomial');    
2219 elseif (strcmp(contents{get(hObject,'Value')},'Noncentral F')),
2220     set(handles.pdf, 'String', 'Noncentral F');    
2221 elseif (strcmp(contents{get(hObject,'Value')},'Noncentral t')),
2222     set(handles.pdf, 'String', 'Noncentral t');      
2223 elseif (strcmp(contents{get(hObject,'Value')},'Noncentral Chi-square')),
2224     set(handles.pdf, 'String', 'Noncentral Chi-square');    
2225 elseif (strcmp(contents{get(hObject,'Value')},'Rayleigh')),
2226     set(handles.pdf, 'String', 'Rayleigh');    
2227 elseif (strcmp(contents{get(hObject,'Value')},'T')),
2228     set(handles.pdf, 'String', 'T');    
2229 elseif (strcmp(contents{get(hObject,'Value')},'Uniform')),
2230     set(handles.pdf, 'String', 'Uniform');        
2231 elseif (strcmp(contents{get(hObject,'Value')},'Discrete Uniform')),
2232     set(handles.pdf, 'String', 'Discrete Uniform'); 
2233 elseif (strcmp(contents{get(hObject,'Value')},'Weibull')),
2234     set(handles.pdf, 'String', 'Weibull'); 
2235 else
2236     msgbox('Error with menu callback. Parameter passed is not recognised.');
2237 end
2238 
2239 
2240 
2241 
2242 function Save_Callback(hObject, eventdata, handles)
2243 
2244 
2245 
2246 
2247 
2248 
2249 function save_handle_Callback(hObject, eventdata, handles)
2250 
2251 set(handles.save_data, 'String', '1');
2252 set(handles.save_handle, 'Checked', 'on');
2253 set(handles.disable_save, 'Checked', 'off');
2254 set(handles.export_default, 'Checked', 'off');
2255 
2256 
2257 
2258 function disable_save_Callback(hObject, eventdata, handles)
2259 
2260 set(handles.save_data, 'String', '0');
2261 set(handles.disable_save, 'Checked', 'on');
2262 set(handles.save_handle, 'Checked', 'off');
2263 set(handles.export_default, 'Checked', 'off');
2264 
2265 
2266 
2267 
2268 function advanced_Callback(hObject, eventdata, handles)
2269 
2270 advanced;
2271 
2272 
2273 
2274 
2275 % Menu OPEN section
2276 
2277 function open_Callback(hObject, eventdata, handles)
2278 
2279 
2280 function generate_simple_bump_Callback(hObject, eventdata, handles)
2281 
2282 set(handles.open_flat, 'Checked', 'off');
2283 set(handles.open_disable, 'Checked', 'off');
2284 set(handles.handle_open, 'Checked', 'off');
2285 set(handles.open_default, 'Checked', 'off');
2286 set(handles.open_plain, 'Checked', 'off');
2287 set(handles.open_plainran, 'Checked', 'off');
2288 set(handles.ellipse, 'Checked', 'off');
2289 set(handles.generate_simple_bump, 'Checked', 'on');
2290 set(handles.load_data, 'String', '7');
2291 
2292 function ellipse_Callback(hObject, eventdata, handles)
2293 
2294 set(handles.open_flat, 'Checked', 'off');
2295 set(handles.open_disable, 'Checked', 'off');
2296 set(handles.handle_open, 'Checked', 'off');
2297 set(handles.open_default, 'Checked', 'off');
2298 set(handles.open_plain, 'Checked', 'off');
2299 set(handles.open_plainran, 'Checked', 'off');
2300 set(handles.ellipse, 'Checked', 'on');
2301 set(handles.generate_simple_bump, 'Checked', 'off');
2302 set(handles.load_data, 'String', '6');
2303 
2304 
2305 function open_flat_Callback(hObject, eventdata, handles)
2306 
2307 set(handles.open_flat, 'Checked', 'on');
2308 set(handles.open_disable, 'Checked', 'off');
2309 set(handles.handle_open, 'Checked', 'off');
2310 set(handles.open_default, 'Checked', 'off');
2311 set(handles.open_plain, 'Checked', 'off');
2312 set(handles.open_plainran, 'Checked', 'off');
2313 set(handles.ellipse, 'Checked', 'off');
2314 set(handles.generate_simple_bump, 'Checked', 'off');
2315 set(handles.load_data, 'String', '3');
2316 
2317 
2318 function open_default_Callback(hObject, eventdata, handles)
2319 
2320 
2321 set(handles.load_data, 'String', '2');
2322 set(handles.handle_open, 'Checked', 'off');
2323 set(handles.open_disable, 'Checked', 'off');
2324 set(handles.open_default, 'Checked', 'on');
2325 set(handles.open_plain, 'Checked', 'off');
2326 set(handles.open_plainran, 'Checked', 'off');
2327 set(handles.ellipse, 'Checked', 'off');
2328 set(handles.generate_simple_bump, 'Checked', 'off');
2329 set(handles.open_flat, 'Checked', 'off');
2330 
2331 
2332 
2333 function open_disable_Callback(hObject, eventdata, handles)
2334 
2335 set(handles.load_data, 'String', '0');
2336 set(handles.open_disable, 'Checked', 'on');
2337 set(handles.handle_open, 'Checked', 'off');
2338 set(handles.generate_simple_bump, 'Checked', 'off');
2339 set(handles.open_default, 'Checked', 'off');
2340 set(handles.open_plain, 'Checked', 'off');
2341 set(handles.open_plainran, 'Checked', 'off');
2342 set(handles.ellipse, 'Checked', 'off');
2343 set(handles.open_flat, 'Checked', 'off');
2344 
2345 
2346 
2347 
2348 
2349 function handle_open_Callback(hObject, eventdata, handles)
2350 
2351 set(handles.load_data, 'String', '1');
2352 set(handles.handle_open, 'Checked', 'on');
2353 set(handles.open_disable, 'Checked', 'off');
2354 set(handles.open_default, 'Checked', 'off');
2355 set(handles.open_plain, 'Checked', 'off');
2356 set(handles.open_plainran, 'Checked', 'off');
2357 set(handles.generate_simple_bump, 'Checked', 'off');
2358 set(handles.ellipse, 'Checked', 'off');
2359 set(handles.open_flat, 'Checked', 'off');
2360 
2361 
2362 function open_plain_Callback(hObject, eventdata, handles)
2363 
2364 set(handles.load_data, 'String', '4');
2365 set(handles.handle_open, 'Checked', 'off');
2366 set(handles.open_disable, 'Checked', 'off');
2367 set(handles.open_default, 'Checked', 'off');
2368 set(handles.open_plain, 'Checked', 'on');
2369 set(handles.open_plainran, 'Checked', 'off');
2370 set(handles.generate_simple_bump, 'Checked', 'off');
2371 set(handles.open_flat, 'Checked', 'off');
2372 
2373 
2374 function open_plainran_Callback(hObject, eventdata, handles)
2375 
2376 set(handles.load_data, 'String', '5');
2377 set(handles.handle_open, 'Checked', 'off');
2378 set(handles.open_disable, 'Checked', 'off');
2379 set(handles.open_default, 'Checked', 'off');
2380 set(handles.open_plain, 'Checked', 'off');
2381 set(handles.open_plainran, 'Checked', 'on');
2382 set(handles.generate_simple_bump, 'Checked', 'off');
2383 set(handles.ellipse, 'Checked', 'off');
2384 set(handles.open_flat, 'Checked', 'off');
2385 
2386 
2387 function save_bumps_Callback(hObject, eventdata, handles)
2388 if (str2num(get(handles.save_bumps_flag, 'String')) == 0),
2389     set(handles.save_bumps_flag, 'String', '1');
2390     set(handles.save_bumps, 'Checked', 'on');
2391 else
2392     set(handles.save_bumps_flag, 'String', '0');
2393     set(handles.save_bumps, 'Checked', 'off');   
2394 end
2395 
2396 
2397 
2398 
2399 
2400 function overlap_scores_option_Callback(hObject, eventdata, handles)
2401 
2402 
2403 if (get(handles.overlap_scores_option,'Value') == 0),
2404     set(handles.overlap_scores_option, 'Value', 0);
2405     set(handles.overlap_scores, 'String', '0');
2406 else
2407     set(handles.overlap_scores_option, 'Value', 1);
2408     set(handles.overlap_scores, 'String', '1'); 
2409 end
2410 
2411 
2412 
2413 function show_target_option_Callback(hObject, eventdata, handles)
2414 
2415 if (get(handles.show_target_option,'Value') == 0),
2416     set(handles.show_target_option, 'Value', 0);
2417     set(handles.show_target, 'String', '0');
2418 else
2419     set(handles.show_target_option, 'Value', 1);
2420     set(handles.show_target, 'String', '1'); 
2421 end  
2422 
2423 
2424 
2425 
2426 function export_Callback(hObject, eventdata, handles)
2427 
2428 
2429 
2430 
2431 function format_selection_Callback(hObject, eventdata, handles)
2432 
2433 
2434 
2435 
2436 
2437 
2438 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2439 % The file formats callbacks
2440 
2441 
2442 function png_Callback(hObject, eventdata, handles)
2443 
2444 set(handles.format, 'String', 'png');
2445 
2446 set(handles.png, 'Checked', 'on');
2447 set(handles.bmp, 'Checked', 'off');
2448 set(handles.tiff, 'Checked', 'off');
2449 set(handles.jpeg, 'Checked', 'off');
2450 set(handles.hdf, 'Checked', 'off');
2451 set(handles.pcx, 'Checked', 'off');
2452 set(handles.xwd, 'Checked', 'off');
2453 set(handles.ras, 'Checked', 'off');
2454 set(handles.pbm, 'Checked', 'off');
2455 set(handles.pgm, 'Checked', 'off');
2456 set(handles.ppm, 'Checked', 'off');
2457 set(handles.pnm, 'Checked', 'off');
2458 
2459 
2460 
2461 
2462 
2463 function bmp_Callback(hObject, eventdata, handles)
2464 
2465 set(handles.format, 'String', 'bmp');
2466 
2467 set(handles.png, 'Checked', 'off');
2468 set(handles.bmp, 'Checked', 'on');
2469 set(handles.tiff, 'Checked', 'off');
2470 set(handles.jpeg, 'Checked', 'off');
2471 set(handles.hdf, 'Checked', 'off');
2472 set(handles.pcx, 'Checked', 'off');
2473 set(handles.xwd, 'Checked', 'off');
2474 set(handles.ras, 'Checked', 'off');
2475 set(handles.pbm, 'Checked', 'off');
2476 set(handles.pgm, 'Checked', 'off');
2477 set(handles.ppm, 'Checked', 'off');
2478 set(handles.pnm, 'Checked', 'off');
2479 
2480 
2481 
2482 
2483 function tiff_Callback(hObject, eventdata, handles)
2484 
2485 set(handles.format, 'String', 'tiff');
2486 
2487 set(handles.png, 'Checked', 'off');
2488 set(handles.bmp, 'Checked', 'off');
2489 set(handles.tiff, 'Checked', 'on');
2490 set(handles.jpeg, 'Checked', 'off');
2491 set(handles.hdf, 'Checked', 'off');
2492 set(handles.pcx, 'Checked', 'off');
2493 set(handles.xwd, 'Checked', 'off');
2494 set(handles.ras, 'Checked', 'off');
2495 set(handles.pbm, 'Checked', 'off');
2496 set(handles.pgm, 'Checked', 'off');
2497 set(handles.ppm, 'Checked', 'off');
2498 set(handles.pnm, 'Checked', 'off');
2499 
2500 
2501 
2502 
2503 
2504 function jpeg_Callback(hObject, eventdata, handles)
2505 
2506 set(handles.format, 'String', 'jpeg');
2507 
2508 set(handles.png, 'Checked', 'off');
2509 set(handles.bmp, 'Checked', 'off');
2510 set(handles.tiff, 'Checked', 'off');
2511 set(handles.jpeg, 'Checked', 'on');
2512 set(handles.hdf, 'Checked', 'off');
2513 set(handles.pcx, 'Checked', 'off');
2514 set(handles.xwd, 'Checked', 'off');
2515 set(handles.ras, 'Checked', 'off');
2516 set(handles.pbm, 'Checked', 'off');
2517 set(handles.pgm, 'Checked', 'off');
2518 set(handles.ppm, 'Checked', 'off');
2519 set(handles.pnm, 'Checked', 'off');
2520 
2521 
2522 
2523 
2524 
2525 function hdf_Callback(hObject, eventdata, handles)
2526 
2527 set(handles.format, 'String', 'hdf');
2528 
2529 set(handles.png, 'Checked', 'off');
2530 set(handles.bmp, 'Checked', 'off');
2531 set(handles.tiff, 'Checked', 'off');
2532 set(handles.jpeg, 'Checked', 'off');
2533 set(handles.hdf, 'Checked', 'on');
2534 set(handles.pcx, 'Checked', 'off');
2535 set(handles.xwd, 'Checked', 'off');
2536 set(handles.ras, 'Checked', 'off');
2537 set(handles.pbm, 'Checked', 'off');
2538 set(handles.pgm, 'Checked', 'off');
2539 set(handles.ppm, 'Checked', 'off');
2540 set(handles.pnm, 'Checked', 'off');
2541 
2542 
2543 
2544 
2545 function pcx_Callback(hObject, eventdata, handles)
2546 
2547 set(handles.format, 'String', 'pcx');
2548 
2549 set(handles.png, 'Checked', 'off');
2550 set(handles.bmp, 'Checked', 'off');
2551 set(handles.tiff, 'Checked', 'off');
2552 set(handles.jpeg, 'Checked', 'off');
2553 set(handles.hdf, 'Checked', 'off');
2554 set(handles.pcx, 'Checked', 'on');
2555 set(handles.xwd, 'Checked', 'off');
2556 set(handles.ras, 'Checked', 'off');
2557 set(handles.pbm, 'Checked', 'off');
2558 set(handles.pgm, 'Checked', 'off');
2559 set(handles.ppm, 'Checked', 'off');
2560 set(handles.pnm, 'Checked', 'off');
2561 
2562 
2563 
2564 
2565 function xwd_Callback(hObject, eventdata, handles)
2566 
2567 set(handles.format, 'String', 'xwd');
2568 
2569 set(handles.png, 'Checked', 'off');
2570 set(handles.bmp, 'Checked', 'off');
2571 set(handles.tiff, 'Checked', 'off');
2572 set(handles.jpeg, 'Checked', 'off');
2573 set(handles.hdf, 'Checked', 'off');
2574 set(handles.pcx, 'Checked', 'off');
2575 set(handles.xwd, 'Checked', 'on');
2576 set(handles.ras, 'Checked', 'off');
2577 set(handles.pbm, 'Checked', 'off');
2578 set(handles.pgm, 'Checked', 'off');
2579 set(handles.ppm, 'Checked', 'off');
2580 set(handles.pnm, 'Checked', 'off');
2581 
2582 
2583 
2584 
2585 function ras_Callback(hObject, eventdata, handles)
2586 
2587 set(handles.format, 'String', 'ras');
2588 
2589 set(handles.png, 'Checked', 'off');
2590 set(handles.bmp, 'Checked', 'off');
2591 set(handles.tiff, 'Checked', 'off');
2592 set(handles.jpeg, 'Checked', 'off');
2593 set(handles.hdf, 'Checked', 'off');
2594 set(handles.pcx, 'Checked', 'off');
2595 set(handles.xwd, 'Checked', 'off');
2596 set(handles.ras, 'Checked', 'on');
2597 set(handles.pbm, 'Checked', 'off');
2598 set(handles.pgm, 'Checked', 'off');
2599 set(handles.ppm, 'Checked', 'off');
2600 set(handles.pnm, 'Checked', 'off');
2601 
2602 
2603 
2604 
2605 function pbm_Callback(hObject, eventdata, handles)
2606 
2607 set(handles.format, 'String', 'pbm');
2608 
2609 set(handles.png, 'Checked', 'off');
2610 set(handles.bmp, 'Checked', 'off');
2611 set(handles.tiff, 'Checked', 'off');
2612 set(handles.jpeg, 'Checked', 'off');
2613 set(handles.hdf, 'Checked', 'off');
2614 set(handles.pcx, 'Checked', 'off');
2615 set(handles.xwd, 'Checked', 'off');
2616 set(handles.ras, 'Checked', 'off');
2617 set(handles.pbm, 'Checked', 'on');
2618 set(handles.pgm, 'Checked', 'off');
2619 set(handles.ppm, 'Checked', 'off');
2620 set(handles.pnm, 'Checked', 'off');
2621 
2622 
2623 
2624 
2625 function pgm_Callback(hObject, eventdata, handles)
2626 
2627 set(handles.format, 'String', 'pgm');
2628 
2629 set(handles.png, 'Checked', 'off');
2630 set(handles.bmp, 'Checked', 'off');
2631 set(handles.tiff, 'Checked', 'off');
2632 set(handles.jpeg, 'Checked', 'off');
2633 set(handles.hdf, 'Checked', 'off');
2634 set(handles.pcx, 'Checked', 'off');
2635 set(handles.xwd, 'Checked', 'off');
2636 set(handles.ras, 'Checked', 'off');
2637 set(handles.pbm, 'Checked', 'off');
2638 set(handles.pgm, 'Checked', 'on');
2639 set(handles.ppm, 'Checked', 'off');
2640 set(handles.pnm, 'Checked', 'off');
2641 
2642 
2643 
2644 
2645 function ppm_Callback(hObject, eventdata, handles)
2646 
2647 
2648 set(handles.format, 'String', 'ppm');
2649 
2650 set(handles.png, 'Checked', 'off');
2651 set(handles.bmp, 'Checked', 'off');
2652 set(handles.tiff, 'Checked', 'off');
2653 set(handles.jpeg, 'Checked', 'off');
2654 set(handles.hdf, 'Checked', 'off');
2655 set(handles.pcx, 'Checked', 'off');
2656 set(handles.xwd, 'Checked', 'off');
2657 set(handles.ras, 'Checked', 'off');
2658 set(handles.pbm, 'Checked', 'off');
2659 set(handles.pgm, 'Checked', 'off');
2660 set(handles.ppm, 'Checked', 'on');
2661 set(handles.pnm, 'Checked', 'off');
2662 
2663 
2664 
2665 
2666 function pnm_Callback(hObject, eventdata, handles)
2667 
2668 set(handles.format, 'String', 'pnm');
2669 
2670 set(handles.png, 'Checked', 'off');
2671 set(handles.bmp, 'Checked', 'off');
2672 set(handles.tiff, 'Checked', 'off');
2673 set(handles.jpeg, 'Checked', 'off');
2674 set(handles.hdf, 'Checked', 'off');
2675 set(handles.pcx, 'Checked', 'off');
2676 set(handles.xwd, 'Checked', 'off');
2677 set(handles.ras, 'Checked', 'off');
2678 set(handles.pbm, 'Checked', 'off');
2679 set(handles.pgm, 'Checked', 'off');
2680 set(handles.ppm, 'Checked', 'off');
2681 set(handles.pnm, 'Checked', 'on');
2682 
2683 
2684 
2685 
2686 
2687 function compression_CreateFcn(hObject, eventdata, handles)
2688 
2689 if ispc
2690     set(hObject,'BackgroundColor','white');
2691 else
2692     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2693 end
2694 
2695 
2696 
2697 
2698 
2699 function compression_Callback(hObject, eventdata, handles)
2700 
2701 contents = get(hObject,'String');
2702 
2703 if (strcmp(contents{get(hObject,'Value')},'Daubechy')),
2704     set(handles.filter_type, 'String', 'db1');
2705 elseif (strcmp(contents{get(hObject,'Value')},'Haar')),
2706     set(handles.filter_type, 'String', 'haar');
2707 elseif (strcmp(contents{get(hObject,'Value')},'Coiflet')),
2708     set(handles.filter_type, 'String', 'coif1');    
2709 elseif (strcmp(contents{get(hObject,'Value')},'Symlet')),
2710     set(handles.filter_type, 'String', 'sym2');   
2711 elseif (strcmp(contents{get(hObject,'Value')},'Meyer')),
2712     set(handles.filter_type, 'String', 'dmey');    
2713 elseif (strcmp(contents{get(hObject,'Value')},'Biorthogonal')),
2714     set(handles.filter_type, 'String', 'bior1.1');   
2715 elseif (strcmp(contents{get(hObject,'Value')},'Reverse Biorthogonal')),
2716     set(handles.filter_type, 'String', 'rbio1.1');     
2717 else
2718     msgbox('Error with menu callback. Parameter passed is not recognised.');
2719 end
2720 
2721 
2722 
2723 
2724 
2725 function compression_level_CreateFcn(hObject, eventdata, handles)
2726 
2727 if ispc
2728     set(hObject,'BackgroundColor','white');
2729 else
2730     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
2731 end
2732 
2733 
2734 
2735 
2736 
2737 function compression_level_Callback(hObject, eventdata, handles)
2738 
2739 
2740 contents = get(hObject,'String');
2741 
2742 if (strcmp(contents{get(hObject,'Value')},'1')),
2743     set(handles.level, 'String', '1');
2744 elseif (strcmp(contents{get(hObject,'Value')},'2')),
2745     set(handles.level, 'String', '2');
2746 elseif (strcmp(contents{get(hObject,'Value')},'3')),
2747     set(handles.level, 'String', '3');    
2748 elseif (strcmp(contents{get(hObject,'Value')},'4')),
2749     set(handles.level, 'String', '4');    
2750 elseif (strcmp(contents{get(hObject,'Value')},'5')),
2751     set(handles.level, 'String', '5');    
2752 elseif (strcmp(contents{get(hObject,'Value')},'6')),
2753     set(handles.level, 'String', '6');    
2754 elseif (strcmp(contents{get(hObject,'Value')},'7')),
2755     set(handles.level, 'String', '7');    
2756 elseif (strcmp(contents{get(hObject,'Value')},'8')),
2757     set(handles.level, 'String', '8');   
2758 elseif (strcmp(contents{get(hObject,'Value')},'9')),
2759     set(handles.level, 'String', '9');
2760 elseif (strcmp(contents{get(hObject,'Value')},'10')),
2761     set(handles.level, 'String', '10'); 
2762 else
2763     msgbox('Error with menu callback. Parameter passed is not recognised.');
2764 end
2765 
2766 
2767 
2768 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2769 % The objective functions callbacks
2770 
2771 
2772 function joint_msd_option_Callback(hObject, eventdata, handles)
2773 
2774 set(handles.sequential_mi_option_menu, 'Checked', 'off');
2775 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
2776 set(handles.joint_msd_option_menu, 'Checked', 'on');
2777 set(handles.joint_model_option_menu, 'Checked', 'off');
2778 set(handles.sequential_msd_option_menu, 'Checked', 'off');
2779 set(handles.sequential_model_option_menu, 'Checked', 'off');
2780 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
2781 set(handles.model_post_msd_option_menu, 'Checked', 'off');
2782 set(handles.joint_mi_option_menu, 'Checked', 'off');
2783 set(handles.joint_nmi_option_menu, 'Checked', 'off');
2784 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
2785 set(handles.tfceccv_menu, 'Checked', 'off');
2786 set(handles.wavelet_option_menu, 'Checked', 'off');
2787 set(handles.model_pairs_menu, 'Checked', 'off');
2788 set(handles.seq_model_pairs_menu, 'Checked', 'off');
2789 
2790 set(handles.sequential_mi_option, 'Value', 0);
2791 set(handles.sequential_nmi_option, 'Value', 0);
2792 set(handles.joint_msd_option, 'Value', 1);
2793 set(handles.joint_model_option, 'Value', 0);
2794 set(handles.sequential_msd_option, 'Value', 0);
2795 set(handles.sequential_model_option, 'Value', 0);
2796 set(handles.mixed_msd_model_option, 'Value', 0);
2797 set(handles.model_post_msd_option, 'Value', 0);
2798 set(handles.joint_mi_option, 'Value', 0);
2799 set(handles.joint_nmi_option, 'Value', 0);
2800 set(handles.button_all_objective_functions, 'Value', 0);
2801 set(handles.tfceccv, 'Value', 0);
2802 set(handles.wavelet_option, 'Value', 0);
2803 
2804 set(handles.all_objective_functions, 'String', '0');
2805 set(handles.objective_function_display, 'String', 'msd_opt_together');
2806 
2807 set(handles.PDF, 'Enable', 'off');
2808 set(handles.Kernel_title, 'Enable', 'off');
2809 
2810 set(handles.overlap_scores_option, 'Enable', 'off');
2811 
2812 set(handles.number_of_bins_text, 'Enable', 'off');
2813 set(handles.number_of_bins_slider, 'Enable', 'off');
2814 set(handles.number_of_bins, 'Enable', 'off');
2815 
2816 set(handles.compression_type_title, 'Enable', 'off');
2817 set(handles.compression_level_title, 'Enable', 'off');
2818 set(handles.compression, 'Enable', 'off');
2819 set(handles.compression_level, 'Enable', 'off');
2820 
2821 
2822 
2823 % unset forced reference
2824 
2825 set(handles.force_reference, 'String', '0');
2826 set(handles.force_reference_button, 'Value', 0);
2827 
2828 
2829 function joint_model_option_Callback(hObject, eventdata, handles)
2830 
2831 set(handles.sequential_mi_option_menu, 'Checked', 'off');
2832 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
2833 set(handles.joint_msd_option_menu, 'Checked', 'off');
2834 set(handles.joint_model_option_menu, 'Checked', 'on');
2835 set(handles.sequential_msd_option_menu, 'Checked', 'off');
2836 set(handles.sequential_model_option_menu, 'Checked', 'off');
2837 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
2838 set(handles.model_post_msd_option_menu, 'Checked', 'off');
2839 set(handles.joint_mi_option_menu, 'Checked', 'off');
2840 set(handles.joint_nmi_option_menu, 'Checked', 'off');
2841 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
2842 set(handles.tfceccv_menu, 'Checked', 'off');
2843 set(handles.wavelet_option_menu, 'Checked', 'off');
2844 set(handles.model_pairs_menu, 'Checked', 'off');
2845 set(handles.seq_model_pairs_menu, 'Checked', 'off');
2846 
2847 
2848 set(handles.sequential_mi_option, 'Value', 0);
2849 set(handles.sequential_nmi_option, 'Value', 0);
2850 set(handles.mixed_msd_model_option, 'Value', 0);
2851 set(handles.model_post_msd_option, 'Value', 0);
2852 set(handles.joint_msd_option, 'Value', 0);
2853 set(handles.joint_model_option, 'Value', 1);
2854 set(handles.sequential_msd_option, 'Value', 0);
2855 set(handles.sequential_model_option, 'Value', 0);
2856 set(handles.joint_mi_option, 'Value', 0);
2857 set(handles.joint_nmi_option, 'Value', 0);
2858 set(handles.button_all_objective_functions, 'Value', 0);
2859 set(handles.tfceccv, 'Value', 0);
2860 set(handles.wavelet_option, 'Value', 0);
2861 
2862 set(handles.all_objective_functions, 'String', '0');
2863 set(handles.objective_function_display, 'String', 'model_opt_together');
2864 
2865 set(handles.PDF, 'Enable', 'off');
2866 set(handles.Kernel_title, 'Enable', 'off');
2867 
2868 set(handles.overlap_scores_option, 'Enable', 'off');
2869 
2870 set(handles.number_of_bins_text, 'Enable', 'off');
2871 set(handles.number_of_bins_slider, 'Enable', 'off');
2872 set(handles.number_of_bins, 'Enable', 'off');
2873 
2874 set(handles.compression_type_title, 'Enable', 'off');
2875 set(handles.compression_level_title, 'Enable', 'off');
2876 set(handles.compression, 'Enable', 'off');
2877 set(handles.compression_level, 'Enable', 'off');
2878 
2879 % set forced reference
2880 
2881 set(handles.force_reference, 'String', '1');
2882 set(handles.force_reference_button, 'Value', 1);
2883 
2884 
2885 function sequential_msd_option_Callback(hObject, eventdata, handles)
2886 
2887 set(handles.sequential_mi_option_menu, 'Checked', 'off');
2888 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
2889 set(handles.joint_msd_option_menu, 'Checked', 'off');
2890 set(handles.joint_model_option_menu, 'Checked', 'off');
2891 set(handles.sequential_msd_option_menu, 'Checked', 'on');
2892 set(handles.sequential_model_option_menu, 'Checked', 'off');
2893 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
2894 set(handles.model_post_msd_option_menu, 'Checked', 'off');
2895 set(handles.joint_mi_option_menu, 'Checked', 'off');
2896 set(handles.joint_nmi_option_menu, 'Checked', 'off');
2897 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
2898 set(handles.tfceccv_menu, 'Checked', 'off');
2899 set(handles.wavelet_option_menu, 'Checked', 'off');
2900 set(handles.model_pairs_menu, 'Checked', 'off');
2901 set(handles.seq_model_pairs_menu, 'Checked', 'off');
2902 
2903 
2904 set(handles.mixed_msd_model_option, 'Value', 0);
2905 set(handles.model_post_msd_option, 'Value', 0);
2906 set(handles.joint_msd_option, 'Value', 0);
2907 set(handles.joint_model_option, 'Value', 0);
2908 set(handles.sequential_msd_option, 'Value', 1);
2909 set(handles.sequential_model_option, 'Value', 0);
2910 set(handles.sequential_mi_option, 'Value', 0);
2911 set(handles.sequential_nmi_option, 'Value', 0);
2912 set(handles.joint_mi_option, 'Value', 0);
2913 set(handles.joint_nmi_option, 'Value', 0);
2914 set(handles.tfceccv, 'Value', 0);
2915 set(handles.wavelet_option, 'Value', 0);
2916 set(handles.button_all_objective_functions, 'Value', 0);
2917 
2918 set(handles.PDF, 'Enable', 'off');
2919 set(handles.Kernel_title, 'Enable', 'off');
2920 
2921 set(handles.number_of_bins_text, 'Enable', 'off');
2922 set(handles.number_of_bins_slider, 'Enable', 'off');
2923 set(handles.number_of_bins, 'Enable', 'off');
2924 
2925 set(handles.all_objective_functions, 'String', '0');
2926 set(handles.objective_function_display, 'String', 'msd_opt_separate');
2927 
2928 set(handles.overlap_scores_option, 'Enable', 'off');
2929 
2930 set(handles.compression_type_title, 'Enable', 'off');
2931 set(handles.compression_level_title, 'Enable', 'off');
2932 set(handles.compression, 'Enable', 'off');
2933 set(handles.compression_level, 'Enable', 'off');
2934 
2935 % unset forced reference
2936 
2937 set(handles.force_reference, 'String', '0');
2938 set(handles.force_reference_button, 'Value', 0);
2939 
2940 
2941 
2942 function sequential_model_option_Callback(hObject, eventdata, handles)
2943 
2944 set(handles.sequential_mi_option_menu, 'Checked', 'off');
2945 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
2946 set(handles.joint_msd_option_menu, 'Checked', 'off');
2947 set(handles.joint_model_option_menu, 'Checked', 'off');
2948 set(handles.sequential_msd_option_menu, 'Checked', 'off');
2949 set(handles.sequential_model_option_menu, 'Checked', 'on');
2950 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
2951 set(handles.model_post_msd_option_menu, 'Checked', 'off');
2952 set(handles.joint_mi_option_menu, 'Checked', 'off');
2953 set(handles.joint_nmi_option_menu, 'Checked', 'off');
2954 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
2955 set(handles.tfceccv_menu, 'Checked', 'off');
2956 set(handles.wavelet_option_menu, 'Checked', 'off');
2957 set(handles.model_pairs_menu, 'Checked', 'off');
2958 set(handles.seq_model_pairs_menu, 'Checked', 'off');
2959 
2960 
2961 set(handles.mixed_msd_model_option, 'Value', 0);
2962 set(handles.model_post_msd_option, 'Value', 0);
2963 set(handles.joint_msd_option, 'Value', 0);
2964 set(handles.joint_model_option, 'Value', 0);
2965 set(handles.sequential_msd_option, 'Value', 0);
2966 set(handles.sequential_model_option, 'Value', 1);
2967 set(handles.sequential_mi_option, 'Value', 0);
2968 set(handles.sequential_nmi_option, 'Value', 0);
2969 set(handles.joint_mi_option, 'Value', 0);
2970 set(handles.joint_nmi_option, 'Value', 0);
2971 set(handles.tfceccv, 'Value', 0);
2972 set(handles.wavelet_option, 'Value', 0);
2973 set(handles.button_all_objective_functions, 'Value', 0);
2974 
2975 set(handles.PDF, 'Enable', 'off');
2976 set(handles.Kernel_title, 'Enable', 'off');
2977 
2978 set(handles.number_of_bins_text, 'Enable', 'off');
2979 set(handles.number_of_bins_slider, 'Enable', 'off');
2980 set(handles.number_of_bins, 'Enable', 'off');
2981 
2982 set(handles.all_objective_functions, 'String', '0');
2983 set(handles.objective_function_display, 'String', 'model_opt_separate');
2984 set(handles.overlap_scores_option, 'Enable', 'off');
2985 
2986 set(handles.compression_type_title, 'Enable', 'off');
2987 set(handles.compression_level_title, 'Enable', 'off');
2988 set(handles.compression, 'Enable', 'off');
2989 set(handles.compression_level, 'Enable', 'off');
2990 
2991 % set forced reference
2992 
2993 set(handles.force_reference, 'String', '1');
2994 set(handles.force_reference_button, 'Value', 1);
2995 
2996 
2997 
2998 
2999 
3000 
3001 function mixed_msd_model_option_Callback(hObject, eventdata, handles)
3002 
3003 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3004 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3005 set(handles.joint_msd_option_menu, 'Checked', 'off');
3006 set(handles.joint_model_option_menu, 'Checked', 'off');
3007 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3008 set(handles.sequential_model_option_menu, 'Checked', 'off');
3009 set(handles.mixed_msd_model_option_menu, 'Checked', 'on');
3010 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3011 set(handles.joint_mi_option_menu, 'Checked', 'off');
3012 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3013 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3014 set(handles.tfceccv_menu, 'Checked', 'off');
3015 set(handles.wavelet_option_menu, 'Checked', 'off');
3016 set(handles.model_pairs_menu, 'Checked', 'off');
3017 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3018 
3019 
3020 set(handles.sequential_mi_option, 'Value', 0);
3021 set(handles.sequential_nmi_option, 'Value', 0);
3022 set(handles.joint_msd_option, 'Value', 0);
3023 set(handles.joint_model_option, 'Value', 0);
3024 set(handles.sequential_msd_option, 'Value', 0);
3025 set(handles.sequential_model_option, 'Value', 0);
3026 set(handles.mixed_msd_model_option, 'Value', 1);
3027 set(handles.model_post_msd_option, 'Value', 0);
3028 set(handles.joint_mi_option, 'Value', 0);
3029 set(handles.joint_nmi_option, 'Value', 0);
3030 set(handles.tfceccv, 'Value', 0);
3031 set(handles.wavelet_option, 'Value', 0);
3032 set(handles.button_all_objective_functions, 'Value', 0);
3033 
3034 set(handles.PDF, 'Enable', 'off');
3035 set(handles.Kernel_title, 'Enable', 'off');
3036 
3037 set(handles.all_objective_functions, 'String', '0');
3038 
3039 set(handles.objective_function_display, 'String', 'mixed_msd_model');
3040 
3041 set(handles.overlap_scores_option, 'Enable', 'off');
3042 
3043 set(handles.number_of_bins_text, 'Enable', 'off');
3044 set(handles.number_of_bins_slider, 'Enable', 'off');
3045 set(handles.number_of_bins, 'Enable', 'off');
3046 
3047 set(handles.compression_type_title, 'Enable', 'off');
3048 set(handles.compression_level_title, 'Enable', 'off');
3049 set(handles.compression, 'Enable', 'off');
3050 set(handles.compression_level, 'Enable', 'off');
3051 
3052 % unset forced reference
3053 
3054 set(handles.force_reference, 'String', '0');
3055 set(handles.force_reference_button, 'Value', 0);
3056 
3057 
3058 
3059 function model_post_msd_option_Callback(hObject, eventdata, handles)
3060 
3061 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3062 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3063 set(handles.joint_msd_option_menu, 'Checked', 'off');
3064 set(handles.joint_model_option_menu, 'Checked', 'off');
3065 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3066 set(handles.sequential_model_option_menu, 'Checked', 'off');
3067 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3068 set(handles.model_post_msd_option_menu, 'Checked', 'on');
3069 set(handles.joint_mi_option_menu, 'Checked', 'off');
3070 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3071 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3072 set(handles.tfceccv_menu, 'Checked', 'off');
3073 set(handles.wavelet_option_menu, 'Checked', 'off');
3074 set(handles.model_pairs_menu, 'Checked', 'off');
3075 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3076 
3077 
3078 set(handles.sequential_mi_option, 'Value', 0);
3079 set(handles.sequential_nmi_option, 'Value', 0);
3080 set(handles.joint_msd_option, 'Value', 0);
3081 set(handles.joint_model_option, 'Value', 0);
3082 set(handles.sequential_msd_option, 'Value', 0);
3083 set(handles.sequential_model_option, 'Value', 0);
3084 set(handles.mixed_msd_model_option, 'Value', 0);
3085 set(handles.model_post_msd_option, 'Value', 1);
3086 set(handles.joint_mi_option, 'Value', 0);
3087 set(handles.joint_nmi_option, 'Value', 0);
3088 set(handles.tfceccv, 'Value', 0);
3089 set(handles.wavelet_option, 'Value', 0);
3090 
3091 set(handles.button_all_objective_functions, 'Value', 0);
3092 
3093 set(handles.all_objective_functions, 'String', '0');
3094 
3095 set(handles.objective_function_display, 'String', 'model_post_msd');
3096 
3097 set(handles.PDF, 'Enable', 'off');
3098 set(handles.Kernel_title, 'Enable', 'off');
3099 
3100 set(handles.overlap_scores_option, 'Enable', 'off');
3101 
3102 set(handles.number_of_bins_text, 'Enable', 'off');
3103 set(handles.number_of_bins_slider, 'Enable', 'off');
3104 set(handles.number_of_bins, 'Enable', 'off');
3105 
3106 set(handles.compression_type_title, 'Enable', 'off');
3107 set(handles.compression_level_title, 'Enable', 'off');
3108 set(handles.compression, 'Enable', 'off');
3109 set(handles.compression_level, 'Enable', 'off');
3110 
3111 % unset forced reference
3112 
3113 set(handles.force_reference, 'String', '0');
3114 set(handles.force_reference_button, 'Value', 0);
3115 
3116 
3117 function joint_mi_option_Callback(hObject, eventdata, handles)
3118 
3119 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3120 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3121 set(handles.joint_msd_option_menu, 'Checked', 'off');
3122 set(handles.joint_model_option_menu, 'Checked', 'off');
3123 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3124 set(handles.sequential_model_option_menu, 'Checked', 'off');
3125 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3126 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3127 set(handles.joint_mi_option_menu, 'Checked', 'on');
3128 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3129 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3130 set(handles.tfceccv_menu, 'Checked', 'off');
3131 set(handles.wavelet_option_menu, 'Checked', 'off');
3132 set(handles.model_pairs_menu, 'Checked', 'off');
3133 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3134 
3135 
3136 set(handles.sequential_mi_option, 'Value', 0);
3137 set(handles.sequential_nmi_option, 'Value', 0);
3138 set(handles.joint_msd_option, 'Value', 0);
3139 set(handles.joint_model_option, 'Value', 0);
3140 set(handles.sequential_msd_option, 'Value', 0);
3141 set(handles.sequential_model_option, 'Value', 0);
3142 set(handles.mixed_msd_model_option, 'Value', 0);
3143 set(handles.model_post_msd_option, 'Value', 0);
3144 set(handles.joint_mi_option, 'Value', 1);
3145 set(handles.joint_nmi_option, 'Value', 0);
3146 set(handles.tfceccv, 'Value', 0);
3147 set(handles.wavelet_option, 'Value', 0);
3148 set(handles.button_all_objective_functions, 'Value', 0);
3149 
3150 set(handles.all_objective_functions, 'String', '0');
3151 
3152 set(handles.number_of_bins_text, 'Enable', 'on');
3153 set(handles.number_of_bins_slider, 'Enable', 'on');
3154 set(handles.number_of_bins, 'Enable', 'on');
3155 
3156 set(handles.PDF, 'Enable', 'off');
3157 set(handles.Kernel_title, 'Enable', 'off');
3158 
3159 set(handles.objective_function_display, 'String', 'mi_opt_together');
3160 
3161 set(handles.overlap_scores_option, 'Enable', 'off');
3162 
3163 set(handles.compression_type_title, 'Enable', 'off');
3164 set(handles.compression_level_title, 'Enable', 'off');
3165 set(handles.compression, 'Enable', 'off');
3166 set(handles.compression_level, 'Enable', 'off');
3167 
3168 % unset forced reference
3169 
3170 set(handles.force_reference, 'String', '0');
3171 set(handles.force_reference_button, 'Value', 0);
3172 
3173 
3174 
3175 function joint_nmi_option_Callback(hObject, eventdata, handles)
3176 
3177 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3178 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3179 set(handles.joint_msd_option_menu, 'Checked', 'off');
3180 set(handles.joint_model_option_menu, 'Checked', 'off');
3181 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3182 set(handles.sequential_model_option_menu, 'Checked', 'off');
3183 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3184 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3185 set(handles.joint_mi_option_menu, 'Checked', 'off');
3186 set(handles.joint_nmi_option_menu, 'Checked', 'on');
3187 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3188 set(handles.tfceccv_menu, 'Checked', 'off');
3189 set(handles.wavelet_option_menu, 'Checked', 'off');
3190 set(handles.model_pairs_menu, 'Checked', 'off');
3191 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3192 
3193 
3194 set(handles.sequential_mi_option, 'Value', 0);
3195 set(handles.sequential_nmi_option, 'Value', 0);
3196 set(handles.joint_msd_option, 'Value', 0);
3197 set(handles.joint_model_option, 'Value', 0);
3198 set(handles.sequential_msd_option, 'Value', 0);
3199 set(handles.sequential_model_option, 'Value', 0);
3200 set(handles.mixed_msd_model_option, 'Value', 0);
3201 set(handles.model_post_msd_option, 'Value', 0);
3202 set(handles.joint_mi_option, 'Value', 0);
3203 set(handles.joint_nmi_option, 'Value', 1);
3204 set(handles.tfceccv, 'Value', 0);
3205 set(handles.wavelet_option, 'Value', 0);
3206 set(handles.button_all_objective_functions, 'Value', 0);
3207 
3208 set(handles.all_objective_functions, 'String', '0');
3209 
3210 set(handles.PDF, 'Enable', 'off');
3211 set(handles.Kernel_title, 'Enable', 'off');
3212 
3213 set(handles.objective_function_display, 'String', 'nmi_opt_together');
3214 
3215 set(handles.overlap_scores_option, 'Enable', 'off');
3216 
3217 set(handles.number_of_bins_text, 'Enable', 'on');
3218 set(handles.number_of_bins_slider, 'Enable', 'on');
3219 set(handles.number_of_bins, 'Enable', 'on');
3220 
3221 set(handles.compression_type_title, 'Enable', 'off');
3222 set(handles.compression_level_title, 'Enable', 'off');
3223 set(handles.compression, 'Enable', 'off');
3224 set(handles.compression_level, 'Enable', 'off');
3225 
3226 % unset forced reference
3227 
3228 set(handles.force_reference, 'String', '0');
3229 set(handles.force_reference_button, 'Value', 0);
3230 
3231 
3232 
3233 function tfceccv_Callback(hObject, eventdata, handles)
3234 
3235 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3236 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3237 set(handles.joint_msd_option_menu, 'Checked', 'off');
3238 set(handles.joint_model_option_menu, 'Checked', 'off');
3239 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3240 set(handles.sequential_model_option_menu, 'Checked', 'off');
3241 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3242 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3243 set(handles.joint_mi_option_menu, 'Checked', 'off');
3244 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3245 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3246 set(handles.tfceccv_menu, 'Checked', 'on');
3247 set(handles.wavelet_option_menu, 'Checked', 'off');
3248 set(handles.model_pairs_menu, 'Checked', 'off');
3249 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3250 
3251 
3252 set(handles.sequential_mi_option, 'Value', 0);
3253 set(handles.sequential_nmi_option, 'Value', 0);
3254 set(handles.joint_msd_option, 'Value', 0);
3255 set(handles.joint_model_option, 'Value', 0);
3256 set(handles.sequential_msd_option, 'Value', 0);
3257 set(handles.sequential_model_option, 'Value', 0);
3258 set(handles.mixed_msd_model_option, 'Value', 0);
3259 set(handles.model_post_msd_option, 'Value', 0);
3260 set(handles.joint_mi_option, 'Value', 0);
3261 set(handles.joint_nmi_option, 'Value', 0);
3262 set(handles.tfceccv, 'Value', 1);
3263 set(handles.wavelet_option, 'Value', 0);
3264 set(handles.button_all_objective_functions, 'Value', 0);
3265 
3266 set(handles.all_objective_functions, 'String', '0');
3267 
3268 set(handles.objective_function_display, 'String', 'tfc_eccv');
3269 
3270 set(handles.overlap_scores_option, 'Enable', 'off');
3271 
3272 set(handles.PDF, 'Enable', 'on');
3273 set(handles.Kernel_title, 'Enable', 'on');
3274 
3275 set(handles.number_of_bins_text, 'Enable', 'off');
3276 set(handles.number_of_bins_slider, 'Enable', 'off');
3277 set(handles.number_of_bins, 'Enable', 'off');
3278 
3279 set(handles.compression_type_title, 'Enable', 'off');
3280 set(handles.compression_level_title, 'Enable', 'off');
3281 set(handles.compression, 'Enable', 'off');
3282 set(handles.compression_level, 'Enable', 'off');
3283 
3284 
3285 % unset forced reference
3286 
3287 set(handles.force_reference, 'String', '1');
3288 set(handles.force_reference_button, 'Value', 1);
3289 
3290 
3291 
3292 function button_all_objective_functions_Callback(hObject, eventdata, handles)
3293 
3294 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3295 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3296 set(handles.joint_msd_option_menu, 'Checked', 'off');
3297 set(handles.joint_model_option_menu, 'Checked', 'off');
3298 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3299 set(handles.sequential_model_option_menu, 'Checked', 'off');
3300 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3301 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3302 set(handles.joint_mi_option_menu, 'Checked', 'off');
3303 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3304 set(handles.button_all_objective_functions_menu, 'Checked', 'on');
3305 set(handles.tfceccv_menu, 'Checked', 'off');
3306 set(handles.wavelet_option_menu, 'Checked', 'off');
3307 set(handles.model_pairs_menu, 'Checked', 'off');
3308 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3309 
3310 
3311 set(handles.sequential_mi_option, 'Value', 0);
3312 set(handles.sequential_nmi_option, 'Value', 0);
3313 set(handles.joint_msd_option, 'Value', 0);
3314 set(handles.joint_model_option, 'Value', 0);
3315 set(handles.sequential_msd_option, 'Value', 0);
3316 set(handles.sequential_model_option, 'Value', 0);
3317 set(handles.mixed_msd_model_option, 'Value', 0);
3318 set(handles.model_post_msd_option, 'Value', 0);
3319 set(handles.joint_mi_option, 'Value', 0);
3320 set(handles.joint_nmi_option, 'Value', 0);
3321 set(handles.tfceccv, 'Value', 0);
3322 set(handles.wavelet_option, 'Value', 0);
3323 set(handles.button_all_objective_functions, 'Value', 1);
3324 
3325 set(handles.all_objective_functions, 'String', '1');
3326 set(handles.objective_function_display, 'String', 'all');
3327 
3328 set(handles.number_of_bins_text, 'Enable', 'off');
3329 set(handles.number_of_bins_slider, 'Enable', 'off');
3330 set(handles.number_of_bins, 'Enable', 'off');
3331 
3332 set(handles.overlap_scores_option, 'Enable', 'on');
3333 
3334 set(handles.compression_type_title, 'Enable', 'off');
3335 set(handles.compression_level_title, 'Enable', 'off');
3336 set(handles.compression, 'Enable', 'off');
3337 set(handles.compression_level, 'Enable', 'off');
3338 
3339 
3340 % unset forced reference
3341 
3342 set(handles.force_reference, 'String', '0');
3343 set(handles.force_reference_button, 'Value', 0);
3344 
3345 
3346 
3347 function sequential_mi_option_Callback(hObject, eventdata, handles)
3348 
3349 set(handles.sequential_mi_option_menu, 'Checked', 'on');
3350 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3351 set(handles.joint_msd_option_menu, 'Checked', 'off');
3352 set(handles.joint_model_option_menu, 'Checked', 'off');
3353 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3354 set(handles.sequential_model_option_menu, 'Checked', 'off');
3355 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3356 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3357 set(handles.joint_mi_option_menu, 'Checked', 'off');
3358 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3359 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3360 set(handles.tfceccv_menu, 'Checked', 'off');
3361 set(handles.wavelet_option_menu, 'Checked', 'off');
3362 set(handles.model_pairs_menu, 'Checked', 'off');
3363 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3364 
3365 
3366 set(handles.sequential_mi_option, 'Value', 1);
3367 set(handles.sequential_nmi_option, 'Value', 0);
3368 set(handles.joint_msd_option, 'Value', 0);
3369 set(handles.joint_model_option, 'Value', 0);
3370 set(handles.sequential_msd_option, 'Value', 0);
3371 set(handles.sequential_model_option, 'Value', 0);
3372 set(handles.mixed_msd_model_option, 'Value', 0);
3373 set(handles.model_post_msd_option, 'Value', 0);
3374 set(handles.joint_mi_option, 'Value', 0);
3375 set(handles.joint_nmi_option, 'Value', 0);
3376 set(handles.tfceccv, 'Value', 0);
3377 set(handles.wavelet_option, 'Value', 0);
3378 set(handles.button_all_objective_functions, 'Value', 0);
3379 
3380 set(handles.all_objective_functions, 'String', '0');
3381 
3382 set(handles.number_of_bins_text, 'Enable', 'on');
3383 set(handles.number_of_bins_slider, 'Enable', 'on');
3384 set(handles.number_of_bins, 'Enable', 'on');
3385 
3386 set(handles.objective_function_display, 'String', 'mi_opt_separate');
3387 
3388 set(handles.PDF, 'Enable', 'off');
3389 set(handles.Kernel_title, 'Enable', 'off');
3390 
3391 set(handles.overlap_scores_option, 'Enable', 'off');
3392 
3393 set(handles.compression_type_title, 'Enable', 'off');
3394 set(handles.compression_level_title, 'Enable', 'off');
3395 set(handles.compression, 'Enable', 'off');
3396 set(handles.compression_level, 'Enable', 'off');
3397 
3398 
3399 % unset forced reference
3400 
3401 set(handles.force_reference, 'String', '0');
3402 set(handles.force_reference_button, 'Value', 0);
3403 
3404 
3405 
3406 function sequential_nmi_option_Callback(hObject, eventdata, handles)
3407 
3408 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3409 set(handles.sequential_nmi_option_menu, 'Checked', 'on');
3410 set(handles.joint_msd_option_menu, 'Checked', 'off');
3411 set(handles.joint_model_option_menu, 'Checked', 'off');
3412 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3413 set(handles.sequential_model_option_menu, 'Checked', 'off');
3414 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3415 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3416 set(handles.joint_mi_option_menu, 'Checked', 'off');
3417 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3418 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3419 set(handles.tfceccv_menu, 'Checked', 'off');
3420 set(handles.wavelet_option_menu, 'Checked', 'off');
3421 set(handles.model_pairs_menu, 'Checked', 'off');
3422 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3423 
3424 
3425 set(handles.sequential_mi_option, 'Value', 0);
3426 set(handles.sequential_nmi_option, 'Value', 1);
3427 set(handles.joint_msd_option, 'Value', 0);
3428 set(handles.joint_model_option, 'Value', 0);
3429 set(handles.sequential_msd_option, 'Value', 0);
3430 set(handles.sequential_model_option, 'Value', 0);
3431 set(handles.mixed_msd_model_option, 'Value', 0);
3432 set(handles.model_post_msd_option, 'Value', 0);
3433 set(handles.joint_mi_option, 'Value', 0);
3434 set(handles.joint_nmi_option, 'Value', 0);
3435 set(handles.tfceccv, 'Value', 0);
3436 set(handles.wavelet_option, 'Value', 0);
3437 set(handles.button_all_objective_functions, 'Value', 0);
3438 
3439 set(handles.objective_function_display, 'String', 'nmi_opt_separate');
3440 
3441 set(handles.all_objective_functions, 'String', '0');
3442 
3443 set(handles.PDF, 'Enable', 'off');
3444 set(handles.Kernel_title, 'Enable', 'off');
3445 
3446 set(handles.number_of_bins_text, 'Enable', 'on');
3447 set(handles.number_of_bins_slider, 'Enable', 'on');
3448 set(handles.number_of_bins, 'Enable', 'on');
3449 
3450 set(handles.overlap_scores_option, 'Enable', 'off');
3451 
3452 set(handles.compression_type_title, 'Enable', 'off');
3453 set(handles.compression_level_title, 'Enable', 'off');
3454 set(handles.compression, 'Enable', 'off');
3455 set(handles.compression_level, 'Enable', 'off');
3456 
3457 
3458 
3459 % unset forced reference
3460 
3461 set(handles.force_reference, 'String', '0');
3462 set(handles.force_reference_button, 'Value', 0);
3463 
3464 
3465 
3466 function wavelet_option_Callback(hObject, eventdata, handles)
3467 
3468 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3469 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3470 set(handles.joint_msd_option_menu, 'Checked', 'off');
3471 set(handles.joint_model_option_menu, 'Checked', 'off');
3472 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3473 set(handles.sequential_model_option_menu, 'Checked', 'off');
3474 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3475 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3476 set(handles.joint_mi_option_menu, 'Checked', 'off');
3477 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3478 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3479 set(handles.tfceccv_menu, 'Checked', 'off');
3480 set(handles.wavelet_option_menu, 'Checked', 'on');
3481 set(handles.model_pairs_menu, 'Checked', 'off');
3482 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3483 
3484 
3485 set(handles.sequential_mi_option, 'Value', 0);
3486 set(handles.sequential_nmi_option, 'Value', 0);
3487 set(handles.joint_msd_option, 'Value', 0);
3488 set(handles.joint_model_option, 'Value', 0);
3489 set(handles.sequential_msd_option, 'Value', 0);
3490 set(handles.sequential_model_option, 'Value', 0);
3491 set(handles.mixed_msd_model_option, 'Value', 0);
3492 set(handles.model_post_msd_option, 'Value', 0);
3493 set(handles.wavelet_option, 'Value', 1);
3494 set(handles.joint_mi_option, 'Value', 0);
3495 set(handles.joint_nmi_option, 'Value', 0);
3496 set(handles.tfceccv, 'Value', 0);
3497 set(handles.button_all_objective_functions, 'Value', 0);
3498 
3499 set(handles.objective_function_display, 'String', 'wavelet_complexity');
3500 
3501 set(handles.all_objective_functions, 'String', '0');
3502 
3503 set(handles.number_of_bins_text, 'Enable', 'off');
3504 set(handles.number_of_bins_slider, 'Enable', 'off');
3505 set(handles.number_of_bins, 'Enable', 'off');
3506 
3507 set(handles.PDF, 'Enable', 'off');
3508 set(handles.Kernel_title, 'Enable', 'off');
3509 
3510 set(handles.overlap_scores_option, 'Enable', 'off');
3511 
3512 set(handles.compression_type_title, 'Enable', 'on');
3513 set(handles.compression_level_title, 'Enable', 'on');
3514 set(handles.compression, 'Enable', 'on');
3515 set(handles.compression_level, 'Enable', 'on');
3516 
3517 
3518 set(handles.force_reference, 'String', '1');
3519 set(handles.force_reference_button, 'Value', 1);
3520 
3521 
3522 
3523 function model_pairs_option_Callback(hObject, eventdata, handles)
3524 
3525 
3526 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3527 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3528 set(handles.joint_msd_option_menu, 'Checked', 'off');
3529 set(handles.joint_model_option_menu, 'Checked', 'off');
3530 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3531 set(handles.sequential_model_option_menu, 'Checked', 'off');
3532 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3533 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3534 set(handles.joint_mi_option_menu, 'Checked', 'off');
3535 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3536 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3537 set(handles.tfceccv_menu, 'Checked', 'off');
3538 set(handles.wavelet_option_menu, 'Checked', 'off');
3539 set(handles.model_pairs_menu, 'Checked', 'on');
3540 set(handles.seq_model_pairs_menu, 'Checked', 'off');
3541 
3542 set(handles.objective_function_display, 'String', 'model_pairs_together');
3543 
3544 
3545 % unset forced reference
3546 
3547 set(handles.force_reference, 'String', '0');
3548 set(handles.force_reference_button, 'Value', 0);
3549 
3550 
3551 set(handles.sequential_mi_option, 'Value', 0);
3552 set(handles.sequential_nmi_option, 'Value', 0);
3553 set(handles.joint_msd_option, 'Value', 0);
3554 set(handles.joint_model_option, 'Value', 0);
3555 set(handles.sequential_msd_option, 'Value', 0);
3556 set(handles.sequential_model_option, 'Value', 0);
3557 set(handles.mixed_msd_model_option, 'Value', 0);
3558 set(handles.model_post_msd_option, 'Value', 0);
3559 set(handles.wavelet_option, 'Value', 0);
3560 set(handles.joint_mi_option, 'Value', 0);
3561 set(handles.joint_nmi_option, 'Value', 0);
3562 set(handles.tfceccv, 'Value', 0);
3563 set(handles.button_all_objective_functions, 'Value', 0);
3564 
3565 set(handles.all_objective_functions, 'String', '0');
3566 
3567 set(handles.number_of_bins_text, 'Enable', 'off');
3568 set(handles.number_of_bins_slider, 'Enable', 'off');
3569 set(handles.number_of_bins, 'Enable', 'off');
3570 
3571 set(handles.PDF, 'Enable', 'off');
3572 set(handles.Kernel_title, 'Enable', 'off');
3573 
3574 set(handles.overlap_scores_option, 'Enable', 'off');
3575 
3576 set(handles.compression_type_title, 'Enable', 'off');
3577 set(handles.compression_level_title, 'Enable', 'off');
3578 set(handles.compression, 'Enable', 'off');
3579 set(handles.compression_level, 'Enable', 'off');
3580 
3581 
3582 
3583 
3584 
3585 function seq_model_pairs_option_Callback(hObject, eventdata, handles)
3586 
3587 
3588 set(handles.sequential_mi_option_menu, 'Checked', 'off');
3589 set(handles.sequential_nmi_option_menu, 'Checked', 'off');
3590 set(handles.joint_msd_option_menu, 'Checked', 'off');
3591 set(handles.joint_model_option_menu, 'Checked', 'off');
3592 set(handles.sequential_msd_option_menu, 'Checked', 'off');
3593 set(handles.sequential_model_option_menu, 'Checked', 'off');
3594 set(handles.mixed_msd_model_option_menu, 'Checked', 'off');
3595 set(handles.model_post_msd_option_menu, 'Checked', 'off');
3596 set(handles.joint_mi_option_menu, 'Checked', 'off');
3597 set(handles.joint_nmi_option_menu, 'Checked', 'off');
3598 set(handles.button_all_objective_functions_menu, 'Checked', 'off');
3599 set(handles.tfceccv_menu, 'Checked', 'off');
3600 set(handles.wavelet_option_menu, 'Checked', 'off');
3601 set(handles.model_pairs_menu, 'Checked', 'off');
3602 set(handles.seq_model_pairs_menu, 'Checked', 'on');
3603 
3604 set(handles.objective_function_display, 'String', 'model_pairs_separate');
3605 
3606 % unset forced reference
3607 
3608 set(handles.force_reference, 'String', '0');
3609 set(handles.force_reference_button, 'Value', 0);
3610 
3611 set(handles.sequential_mi_option, 'Value', 0);
3612 set(handles.sequential_nmi_option, 'Value', 0);
3613 set(handles.joint_msd_option, 'Value', 0);
3614 set(handles.joint_model_option, 'Value', 0);
3615 set(handles.sequential_msd_option, 'Value', 0);
3616 set(handles.sequential_model_option, 'Value', 0);
3617 set(handles.mixed_msd_model_option, 'Value', 0);
3618 set(handles.model_post_msd_option, 'Value', 0);
3619 set(handles.wavelet_option, 'Value', 0);
3620 set(handles.joint_mi_option, 'Value', 0);
3621 set(handles.joint_nmi_option, 'Value', 0);
3622 set(handles.tfceccv, 'Value', 0);
3623 set(handles.button_all_objective_functions, 'Value', 0);
3624 
3625 set(handles.all_objective_functions, 'String', '0');
3626 
3627 set(handles.number_of_bins_text, 'Enable', 'off');
3628 set(handles.number_of_bins_slider, 'Enable', 'off');
3629 set(handles.number_of_bins, 'Enable', 'off');
3630 
3631 set(handles.PDF, 'Enable', 'off');
3632 set(handles.Kernel_title, 'Enable', 'off');
3633 
3634 set(handles.overlap_scores_option, 'Enable', 'off');
3635 
3636 set(handles.compression_type_title, 'Enable', 'off');
3637 set(handles.compression_level_title, 'Enable', 'off');
3638 set(handles.compression, 'Enable', 'off');
3639 set(handles.compression_level, 'Enable', 'off');
3640 
3641 
3642 
3643 
3644 
3645 function status_mode_menu_Callback(hObject, eventdata, handles)
3646 
3647 
3648 
3649 
3650 
3651 function options_Callback(hObject, eventdata, handles)
3652 
3653 
3654 
3655 
3656 function parameters_menu_Callback(hObject, eventdata, handles)
3657 
3658 
3659 
3660 
3661 
3662 
3663 
3664 
3665 
3666 function hierarchical_text_menu_Callback(hObject, eventdata, handles)
3667 
3668 set(handles.progress_bar_menu, 'Checked', 'off');
3669 set(handles.hierarchical_text_menu, 'Checked', 'on');
3670 set(handles.quiet_menu, 'Checked', 'off');
3671 set(handles.console_progress_bar, 'Checked', 'off');
3672 
3673 set(handles.hierarchical_text, 'String', '0');
3674 
3675 
3676 function progress_bar_menu_Callback(hObject, eventdata, handles)
3677 
3678 set(handles.progress_bar_menu, 'Checked', 'on');
3679 set(handles.hierarchical_text_menu, 'Checked', 'off');
3680 set(handles.quiet_menu, 'Checked', 'off');
3681 set(handles.console_progress_bar, 'Checked', 'off');
3682 
3683 set(handles.hierarchical_text, 'String', '1');
3684 
3685 
3686 
3687 function quiet_menu_Callback(hObject, eventdata, handles)
3688 
3689 set(handles.progress_bar_menu, 'Checked', 'off');
3690 set(handles.hierarchical_text_menu, 'Checked', 'off');
3691 set(handles.quiet_menu, 'Checked', 'on');
3692 set(handles.console_progress_bar, 'Checked', 'off');
3693 
3694 set(handles.hierarchical_text, 'String', '2');
3695 
3696 
3697 
3698 function score_by_menu_CreateFcn(hObject, eventdata, handles)
3699 
3700 
3701 if ispc
3702     set(hObject,'BackgroundColor','white');
3703 else
3704     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3705 end
3706 
3707 
3708 
3709 function score_by_menu_Callback(hObject, eventdata, handles)
3710 
3711 
3712 function score_model_by_menu_CreateFcn(hObject, eventdata, handles)
3713 
3714 
3715 if ispc
3716     set(hObject,'BackgroundColor','white');
3717 else
3718     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3719 end
3720 
3721 
3722 
3723 function score_model_by_menu_Callback(hObject, eventdata, handles)
3724 
3725 contents = get(hObject,'String');
3726 
3727 if (strcmp(contents{get(hObject,'Value')},'Model Defaults')),
3728     set(handles.model_score_type, 'String', 'Default');
3729 elseif (strcmp(contents{get(hObject,'Value')},'Specificity')),
3730     set(handles.model_score_type, 'String', 'Specificity');
3731 elseif (strcmp(contents{get(hObject,'Value')},'Generalisability')),
3732     set(handles.model_score_type, 'String', 'Generalisability');
3733 elseif (strcmp(contents{get(hObject,'Value')},'Mean MSD')),
3734     set(handles.model_score_type, 'String', 'Mean MSD');    
3735 elseif (strcmp(contents{get(hObject,'Value')},'All')),
3736     set(handles.model_score_type, 'String', 'All');        
3737 else
3738     error('Wrong values passed from scoring method. Internal error.');
3739 end
3740 
3741 
3742 
3743 
3744 function Technical_Callback(hObject, eventdata, handles)
3745 
3746 
3747 
3748 message = [['Autonomous Appearance-based Registration Test-bed  '];
3749     ['Imaging Science and Biomedical Engineering         '];
3750     ['Victoria University of Manchester                  '];
3751     ['Version ',[get_version],'                                      '];                     
3752     ['                                                   '];
3753     ['Technical Page:                                    '];
3754     ['                                                   '];
3755     ['http://www.danielsorogon.com/Webmaster/Research/NRR'];
3756     ['                                                   '];
3757     ['Experiments run on:                                '];
3758     ['                                                   '];
3759     ['    eng037.cs.man.ac.uk; eng038.cs.man.ac.uk;      '];
3760     ['    eng040.cs.man.ac.uk; eng041.cs.man.ac.uk;      '];           
3761     ['    eng042.cs.man.ac.uk; baine.smb.man.ac.uk.      '];         
3762     ['    rs0.cs.man.ac.uk.                              '];
3763     ['                                                   '];  
3764     ['Customised for Linux, MATLAB 6.5 Release 13        '];
3765     ['                                                   ']];    
3766 
3767 
3768 msgbox(message ,'AART: Technical');
3769 
3770 
3771 
3772 
3773 function gen_slider_CreateFcn(hObject, eventdata, handles)
3774 
3775 
3776 usewhitebg = 1;
3777 if usewhitebg
3778     set(hObject,'BackgroundColor',[.9 .9 .9]);
3779 else
3780     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3781 end
3782 
3783 
3784 
3785 
3786 function gen_slider_Callback(hObject, eventdata, handles)
3787 
3788 
3789 set(handles.gen_iters, 'String', num2str(ceil(get(handles.gen_slider, 'Value'))));
3790 
3791 
3792 
3793 
3794 
3795 function spec_slider_CreateFcn(hObject, eventdata, handles)
3796 
3797 usewhitebg = 1;
3798 if usewhitebg
3799     set(hObject,'BackgroundColor',[.9 .9 .9]);
3800 else
3801     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3802 end
3803 
3804 
3805 
3806 
3807 function spec_slider_Callback(hObject, eventdata, handles)
3808 
3809 
3810 set(handles.spec_iters, 'String', num2str(ceil(get(handles.spec_slider, 'Value'))));
3811 
3812 
3813 
3814 
3815 function console_progress_bar_Callback(hObject, eventdata, handles)
3816 
3817 
3818 set(handles.progress_bar_menu, 'Checked', 'off');
3819 set(handles.hierarchical_text_menu, 'Checked', 'off');
3820 set(handles.quiet_menu, 'Checked', 'off');
3821 set(handles.console_progress_bar, 'Checked', 'on');
3822 
3823 set(handles.hierarchical_text, 'String', '3');
3824 
3825 
3826 
3827 
3828 function warp_menu_CreateFcn(hObject, eventdata, handles)
3829 
3830 if ispc
3831     set(hObject,'BackgroundColor','white');
3832 else
3833     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3834 end
3835 
3836 
3837 
3838 
3839 function warp_menu_Callback(hObject, eventdata, handles)
3840 
3841 contents = get(hObject,'String');
3842 
3843 if (strcmp(contents{get(hObject,'Value')},'Overlapping Warps')),
3844        set(handles.draw_warp_curve, 'String', '1');
3845        set(handles.draw_curve_by_images, 'String', '0');
3846        set(handles.show_warp_targets, 'String', '0');
3847        setappdata(0, 'draw_final_warps', '0');
3848 elseif (strcmp(contents{get(hObject,'Value')},'Warps Map')),
3849        set(handles.draw_warp_curve, 'String', '0');
3850        set(handles.draw_curve_by_images, 'String', '1');
3851        set(handles.show_warp_targets, 'String', '0');
3852        setappdata(0, 'draw_final_warps', '0');
3853 elseif (strcmp(contents{get(hObject,'Value')},'None')),
3854        set(handles.draw_warp_curve, 'String', '0');
3855        set(handles.draw_curve_by_images, 'String', '0');
3856        set(handles.show_warp_targets, 'String', '0');
3857        setappdata(0, 'draw_final_warps', '0');
3858 elseif (strcmp(contents{get(hObject,'Value')},'All')),
3859        set(handles.draw_warp_curve, 'String', '1');
3860        set(handles.draw_curve_by_images, 'String', '1');
3861        set(handles.show_warp_targets, 'String', '1');
3862        setappdata(0, 'draw_final_warps', '1');
3863 elseif (strcmp(contents{get(hObject,'Value')},'Targets Only')),
3864        set(handles.draw_warp_curve, 'String', '0');
3865        set(handles.draw_curve_by_images, 'String', '0');
3866        set(handles.show_warp_targets, 'String', '1');
3867        setappdata(0, 'draw_final_warps', '0');
3868 elseif (strcmp(contents{get(hObject,'Value')},'Warps Map with Targets')),
3869        set(handles.draw_warp_curve, 'String', '0');
3870        set(handles.draw_curve_by_images, 'String', '1');
3871        set(handles.show_warp_targets, 'String', '1');
3872        setappdata(0, 'draw_final_warps', '0');
3873 elseif (strcmp(contents{get(hObject,'Value')},'Overlapping Warps with Targets')),
3874        set(handles.draw_warp_curve, 'String', '1');
3875        set(handles.draw_curve_by_images, 'String', '0');
3876        set(handles.show_warp_targets, 'String', '1');
3877        setappdata(0, 'draw_final_warps', '0');
3878 elseif (strcmp(contents{get(hObject,'Value')},'Final Warps')),
3879        set(handles.draw_warp_curve, 'String', '0');
3880        set(handles.draw_curve_by_images, 'String', '0');
3881        set(handles.show_warp_targets, 'String', '0');
3882        setappdata(0, 'draw_final_warps', '1');       
3883 else
3884     error('Wrong values passed from warps menu. Internal error.');
3885 end
3886 
3887 
3888 
3889 
3890 function save_mesh_option_Callback(hObject, eventdata, handles)
3891 
3892 set(handles.save_plots_option, 'Value', 0);
3893 set(handles.save_pixels_option, 'Value', 0);
3894 set(handles.save_mesh_option, 'Value', 1);
3895 set(handles.save_model_option, 'Value', 0);
3896 
3897 set(handles.save_pixels, 'String', '2');
3898 
3899 
3900 
3901 function show_mesh_throughout_option_Callback(hObject, eventdata, handles)
3902 
3903 
3904 
3905 if (get(handles.show_mesh_throughout_option,'Value') == 0),
3906     set(handles.show_mesh_throughout_option, 'Value', 0);
3907     set(handles.show_mesh, 'String', '0');
3908 else
3909     set(handles.show_mesh_throughout_option, 'Value', 1);
3910     set(handles.show_mesh, 'String', '1');
3911 end   
3912 
3913 
3914 
3915 function mesh_menu_CreateFcn(hObject, eventdata, handles)
3916 
3917 if ispc
3918     set(hObject,'BackgroundColor','white');
3919 else
3920     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3921 end
3922 
3923 
3924 
3925 function mesh_menu_Callback(hObject, eventdata, handles)
3926 
3927 contents = get(hObject,'String');
3928 
3929 if (strcmp(contents{get(hObject,'Value')},'Surface Red')),
3930        set(handles.mesh_type, 'String', 'Surface Red');
3931        set(handles.rotate_surface, 'Enable', 'off');
3932 elseif (strcmp(contents{get(hObject,'Value')},'Surface Blue')),
3933        set(handles.mesh_type, 'String', 'Surface Blue');
3934        set(handles.rotate_surface, 'Enable', 'off');
3935 elseif (strcmp(contents{get(hObject,'Value')},'Polygons')),
3936        set(handles.mesh_type, 'String', 'Polygons');
3937        set(handles.rotate_surface, 'Enable', 'off');
3938 elseif (strcmp(contents{get(hObject,'Value')},'Illuminated Surface')),
3939        set(handles.mesh_type, 'String', 'Illuminated Surface');
3940        set(handles.rotate_surface, 'Enable', 'on');
3941 else
3942     error('Wrong values passed from mesh type menu. Internal error.');
3943 end
3944 
3945 
3946 
3947 function advanced_button_Callback(hObject, eventdata, handles)
3948 
3949 
3950 advanced;
3951 
3952 
3953 
3954 function frames_per_second_slider_CreateFcn(hObject, eventdata, handles)
3955 
3956 usewhitebg = 1;
3957 if usewhitebg
3958     set(hObject,'BackgroundColor',[.9 .9 .9]);
3959 else
3960     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3961 end
3962 
3963 
3964 function frames_per_second_slider_Callback(hObject, eventdata, handles)
3965 
3966 set(handles.frames_per_second, 'String', num2str(ceil(get(handles.frames_per_second_slider, 'Value'))));
3967 
3968 
3969 
3970 % The following will only be called if the images (axes) are void
3971 
3972 function aart_pressed()
3973 
3974 web http://www.danielsorogon.com/Webmaster/Projects/AART/
3975 
3976 
3977 
3978 function isbe_pressed()
3979 
3980 web http://www.isbe.man.ac.uk
3981 
3982 
3983 
3984 
3985 function samples_pressed(hObject, eventdata, handles)
3986 
3987 draw_data(hObject, eventdata, handles);
3988 
3989 
3990 
3991 
3992 function knotpoints_slider_CreateFcn(hObject, eventdata, handles)
3993 
3994 usewhitebg = 1;
3995 if usewhitebg
3996     set(hObject,'BackgroundColor',[.9 .9 .9]);
3997 else
3998     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
3999 end
4000 
4001 
4002 
4003 function knotpoints_slider_Callback(hObject, eventdata, handles)
4004 
4005 
4006 set(handles.knot_points, 'String', num2str(ceil(get(handles.knotpoints_slider, 'Value'))));
4007 
4008 
4009 
4010 function show_registration_target_Callback(hObject, eventdata, handles)
4011 
4012 
4013 if (get(handles.show_registration_target,'Value') == 0),
4014     set(handles.show_registration_target, 'Value', 0);
4015     set(handles.show_registration_target_flag, 'String', '0');
4016 else
4017     set(handles.show_registration_target, 'Value', 1);
4018     set(handles.show_registration_target_flag, 'String', '1'); 
4019 end  
4020 
4021 
4022 
4023 function produce_record_button_Callback(hObject, eventdata, handles)
4024 
4025 
4026 if (get(handles.produce_record_button,'Value') == 0),
4027     set(handles.produce_record_button, 'Value', 0);
4028     set(handles.produce_record, 'String', '0');
4029 else
4030     set(handles.produce_record_button, 'Value', 1);
4031     set(handles.produce_record, 'String', '1'); 
4032 end  
4033 
4034 
4035 
4036 function initialise_warps_close_to_target_button_Callback(hObject, eventdata, handles)
4037 
4038 
4039 if (get(handles.initialise_warps_close_to_target_button,'Value') == 0),
4040     set(handles.initialise_warps_close_to_target_button, 'Value', 0);
4041     set(handles.initialise_warps_close_to_target, 'String', '0');
4042     set(handles.perturb_option_button, 'Enable', 'off');
4043     set(handles.perturb_option_menuentry, 'Enable', 'off');
4044 else
4045     set(handles.initialise_warps_close_to_target_button, 'Value', 1);
4046     set(handles.initialise_warps_close_to_target, 'String', '1'); 
4047     set(handles.perturb_option_button, 'Enable', 'on');
4048     set(handles.perturb_option_menuentry, 'Enable', 'on');
4049 end  
4050 
4051 
4052 
4053 
4054 function save_in_log_button_Callback(hObject, eventdata, handles)
4055 
4056 
4057 
4058 if (get(handles.save_in_log_button,'Value') == 0),
4059     set(handles.save_in_log_button, 'Value', 0);
4060     set(handles.save_in_log, 'String', '0');
4061 else
4062     set(handles.save_in_log_button, 'Value', 1);
4063     set(handles.save_in_log, 'String', '1'); 
4064 end  
4065 
4066 
4067 
4068 function perturb_option_menuentry_Callback(hObject, eventdata, handles)
4069 
4070 
4071 
4072 perturb;
4073 
4074 
4075 
4076 function perturb_option_button_Callback(hObject, eventdata, handles)
4077 
4078 
4079 
4080 perturb;
4081 
4082 
4083 
4084 function force_reference_button_Callback(hObject, eventdata, handles)
4085 
4086 
4087 
4088 if (get(handles.force_reference_button,'Value') == 0),
4089     set(handles.force_reference_button, 'Value', 0);
4090     set(handles.force_reference, 'String', '0');
4091 else
4092     set(handles.force_reference_button, 'Value', 1);
4093     set(handles.force_reference, 'String', '1'); 
4094 end
4095 
4096 
4097 function cycle_slider_CreateFcn(hObject, eventdata, handles)
4098 
4099 usewhitebg = 1;
4100 if usewhitebg
4101     set(hObject,'BackgroundColor',[.9 .9 .9]);
4102 else
4103     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
4104 end
4105 
4106 
4107 
4108 function cycle_slider_Callback(hObject, eventdata, handles)
4109 
4110 
4111 
4112 set(handles.cycle, 'String', num2str(ceil(get(handles.cycle_slider, 'Value'))));
4113 
4114 
4115 %
4116 % function verbose_optimiser_Callback(hObject, eventdata, handles)
4117 %
4118 % if (strcmp(get(handles.verbose_optimiser_flag,'String'),'off')),
4119 %     set(handles.verbose_optimiser_flag, 'String', 'iter');
4120 %     set(handles.verbose_optimiser, 'Checked', 'on');
4121 % else
4122 %     set(handles.verbose_optimiser_flag, 'String', 'off'); % notify, final also exist
4123 %     set(handles.verbose_optimiser, 'Checked', 'off')
4124 % end
4125 
4126 
4127 
4128 function save_stats_menu_Callback(hObject, eventdata, handles)
4129 
4130 
4131 if (str2num(get(handles.save_stats,'String')) == 0),
4132     set(handles.save_stats, 'String', '1');
4133     set(handles.save_stats_menu, 'Checked', 'on');
4134 else
4135     set(handles.save_stats, 'String', '0');
4136     set(handles.save_stats_menu, 'Checked', 'off');    
4137 end  
4138 
4139 
4140 
4141 function attr_height_Callback(hObject, eventdata, handles)
4142 
4143 
4144 set(handles.base_height_slider, 'Value', 0.7);
4145 set(handles.base_width_slider, 'Value', 0.5);
4146 set(handles.height_variation_slider, 'Value', 0);
4147 set(handles.width_variation_slider, 'Value', 0.2);
4148 set(handles.position_freedom_slider, 'Value', 0.9);
4149 set(handles.smoothness_slider, 'Value', 17);
4150 
4151 set(handles.bump_width, 'String', '0.5');
4152 set(handles.bump_width_variation, 'String', '0.2');
4153 set(handles.bump_height, 'String', '0.7');
4154 set(handles.bump_height_variation, 'String', '0');
4155 set(handles.bump_position_freedom, 'String', '0.9');
4156 set(handles.smoothness_factor, 'String', '17');
4157 
4158 draw_data(hObject, eventdata, handles);
4159 
4160 
4161 
4162 function attr_low_var_Callback(hObject, eventdata, handles)
4163 
4164 
4165 set(handles.base_height_slider, 'Value', 0.2);
4166 set(handles.base_width_slider, 'Value', 0.5);
4167 set(handles.height_variation_slider, 'Value', 0.1);
4168 set(handles.width_variation_slider, 'Value', 0.1);
4169 set(handles.position_freedom_slider, 'Value', 0.7);
4170 set(handles.smoothness_slider, 'Value', 17);
4171 
4172 set(handles.bump_width, 'String', '0.5');
4173 set(handles.bump_width_variation, 'String', '0.1');
4174 set(handles.bump_height, 'String', '0.2');
4175 set(handles.bump_height_variation, 'String', '0.1');
4176 set(handles.bump_position_freedom, 'String', '0.7');
4177 set(handles.smoothness_factor, 'String', '17');
4178 
4179 draw_data(hObject, eventdata, handles);
4180 
4181 
4182 
4183 function attr_typical_Callback(hObject, eventdata, handles)
4184 
4185 
4186 set(handles.base_height_slider, 'Value', 0.2);
4187 set(handles.base_width_slider, 'Value', 0.5);
4188 set(handles.height_variation_slider, 'Value', 0.7);
4189 set(handles.width_variation_slider, 'Value', 0.2);
4190 set(handles.position_freedom_slider, 'Value', 0.9);
4191 set(handles.smoothness_slider, 'Value', 17);
4192 
4193 set(handles.bump_width, 'String', '0.5');
4194 set(handles.bump_width_variation, 'String', '0.2');
4195 set(handles.bump_height, 'String', '0.2');
4196 set(handles.bump_height_variation, 'String', '0.7');
4197 set(handles.bump_position_freedom, 'String', '0.9');
4198 set(handles.smoothness_factor, 'String', '17');
4199 
4200 
4201 function Register_Callback(hObject, eventdata, handles)
4202 
4203 register_1d_Callback(hObject, eventdata, handles);
4204 
4205 function Reset_Callback(hObject, eventdata, handles)
4206 
4207 initialize_gui(hObject, handles);
4208 
4209 
4210 
4211 
4212 function export_default_Callback(hObject, eventdata, handles)
4213 
4214 
4215 
4216 set(handles.disable_save, 'Checked', 'off');
4217 set(handles.save_handle, 'Checked', 'off');
4218 set(handles.export_default, 'Checked', 'on');
4219 set(handles.save_data, 'String', '2');
4220 
4221 
4222 
4223 
4224 function save_model_option_Callback(hObject, eventdata, handles)
4225 
4226 
4227 
4228 set(handles.save_plots_option, 'Value', 0);
4229 set(handles.save_pixels_option, 'Value', 0);
4230 set(handles.save_mesh_option, 'Value', 0);
4231 set(handles.save_model_option, 'Value', 1);
4232 
4233 set(handles.save_pixels, 'String', '3');
4234 
4235 
4236 
4237 
4238 function overnight1_Callback(hObject, eventdata, handles)
4239 
4240 
4241 
4242 
4243 
4244 set(handles.overnight1, 'Checked', 'on');
4245 set(handles.overnight2, 'Checked', 'off');
4246 set(handles.overnight3, 'Checked', 'off');
4247 
4248 set(handles.user_menus, 'Checked', 'off');
4249 set(handles.default_parameters, 'Checked', 'off');
4250 set(handles.max_test, 'Checked', 'off');
4251 set(handles.normal_test, 'Checked', 'off');
4252 set(handles.large_test, 'Checked', 'off');
4253 set(handles.large_set, 'Checked', 'off');
4254 set(handles.use_defaults, 'String', '6');
4255 
4256 
4257 function overnight2_Callback(hObject, eventdata, handles)
4258 
4259 
4260 set(handles.overnight1, 'Checked', 'off');
4261 set(handles.overnight2, 'Checked', 'on');
4262 set(handles.overnight3, 'Checked', 'off');
4263 
4264 set(handles.user_menus, 'Checked', 'off');
4265 set(handles.default_parameters, 'Checked', 'off');
4266 set(handles.max_test, 'Checked', 'off');
4267 set(handles.normal_test, 'Checked', 'off');
4268 set(handles.large_test, 'Checked', 'off');
4269 set(handles.large_set, 'Checked', 'off');
4270 set(handles.use_defaults, 'String', '7');
4271 
4272 
4273 function overnight3_Callback(hObject, eventdata, handles)
4274 
4275 
4276 set(handles.overnight1, 'Checked', 'off');
4277 set(handles.overnight2, 'Checked', 'off');
4278 set(handles.overnight3, 'Checked', 'on');
4279 
4280 
4281 
4282 set(handles.user_menus, 'Checked', 'off');
4283 set(handles.default_parameters, 'Checked', 'off');
4284 set(handles.max_test, 'Checked', 'off');
4285 set(handles.normal_test, 'Checked', 'off');
4286 set(handles.large_test, 'Checked', 'off');
4287 set(handles.large_set, 'Checked', 'off');
4288 set(handles.use_defaults, 'String', '8');
4289 
4290 draw_data(hObject, eventdata, handles);
4291 
4292 
4293 
4294 function large_test_Callback(hObject, eventdata, handles)
4295 
4296 
4297 set(handles.overnight1, 'Checked', 'off');
4298 set(handles.overnight2, 'Checked', 'off');
4299 set(handles.overnight3, 'Checked', 'off');
4300 
4301 set(handles.user_menus, 'Checked', 'off');
4302 set(handles.default_parameters, 'Checked', 'off');
4303 set(handles.max_test, 'Checked', 'off');
4304 set(handles.normal_test, 'Checked', 'off');
4305 set(handles.large_test, 'Checked', 'on');
4306 set(handles.large_set, 'Checked', 'off');
4307 set(handles.use_defaults, 'String', '4');
4308 
4309 
4310 function large_set_Callback(hObject, eventdata, handles)
4311 
4312 
4313 
4314 set(handles.overnight1, 'Checked', 'off');
4315 set(handles.overnight2, 'Checked', 'off');
4316 set(handles.overnight3, 'Checked', 'off');
4317 
4318 set(handles.user_menus, 'Checked', 'off');
4319 set(handles.default_parameters, 'Checked', 'off');
4320 set(handles.max_test, 'Checked', 'off');
4321 set(handles.normal_test, 'Checked', 'off');
4322 set(handles.large_test, 'Checked', 'off');
4323 set(handles.large_set, 'Checked', 'on');
4324 set(handles.use_defaults, 'String', '5');
4325 
4326 
4327 
4328 function user_menus_Callback(hObject, eventdata, handles)
4329 
4330 set(handles.overnight1, 'Checked', 'off');
4331 set(handles.overnight2, 'Checked', 'off');
4332 set(handles.overnight3, 'Checked', 'off');
4333 
4334 set(handles.user_menus, 'Checked', 'on');
4335 set(handles.default_parameters, 'Checked', 'off');
4336 set(handles.max_test, 'Checked', 'off');
4337 set(handles.normal_test, 'Checked', 'off');
4338 set(handles.large_test, 'Checked', 'off');
4339 set(handles.large_set, 'Checked', 'off');
4340 set(handles.use_defaults, 'String', '1');
4341 
4342 
4343 
4344 
4345 function default_parameters_Callback(hObject, eventdata, handles)
4346 
4347 set(handles.overnight1, 'Checked', 'off');
4348 set(handles.overnight2, 'Checked', 'off');
4349 set(handles.overnight3, 'Checked', 'off');
4350 
4351 set(handles.user_menus, 'Checked', 'off');
4352 set(handles.default_parameters, 'Checked', 'on');
4353 set(handles.max_test, 'Checked', 'off');
4354 set(handles.normal_test, 'Checked', 'off');
4355 set(handles.large_test, 'Checked', 'off');
4356 set(handles.large_set, 'Checked', 'off');
4357 set(handles.use_defaults, 'String', '0');
4358 
4359 
4360 
4361 function max_test_Callback(hObject, eventdata, handles)
4362 
4363 
4364 
4365 set(handles.overnight1, 'Checked', 'off');
4366 set(handles.overnight2, 'Checked', 'off');
4367 set(handles.overnight3, 'Checked', 'off');
4368 
4369 set(handles.user_menus, 'Checked', 'off');
4370 set(handles.default_parameters, 'Checked', 'off');
4371 set(handles.max_test, 'Checked', 'on');
4372 set(handles.normal_test, 'Checked', 'off');
4373 set(handles.large_test, 'Checked', 'off');
4374 set(handles.large_set, 'Checked', 'off');
4375 set(handles.use_defaults, 'String', '2');
4376 
4377 
4378 
4379 function normal_test_Callback(hObject, eventdata, handles)
4380 
4381 
4382 set(handles.overnight1, 'Checked', 'off');
4383 set(handles.overnight2, 'Checked', 'off');
4384 set(handles.overnight3, 'Checked', 'off');
4385 
4386 set(handles.user_menus, 'Checked', 'off');
4387 set(handles.default_parameters, 'Checked', 'off');
4388 set(handles.max_test, 'Checked', 'off');
4389 set(handles.normal_test, 'Checked', 'on');
4390 set(handles.large_test, 'Checked', 'off');
4391 set(handles.large_set, 'Checked', 'off');
4392 set(handles.use_defaults, 'String', '3');
4393 
4394 
4395 
4396 function automation_button_Callback(hObject, eventdata, handles)
4397 
4398 
4399 
4400 automation;
4401 
4402 
4403 
4404 function automation_menu_Callback(hObject, eventdata, handles)
4405 
4406 automation;
4407 
4408 
4409 function show_warps_while_optimising_Callback(hObject, eventdata, handles)
4410 
4411 if (strcmp(get(handles.show_warps_while_optimising_flag,'String'),'0')),
4412     set(handles.show_warps_while_optimising_flag, 'String', '1');
4413     set(handles.show_warps_while_optimising, 'Checked', 'on');
4414 else
4415     set(handles.show_warps_while_optimising_flag, 'String', '0');
4416     set(handles.show_warps_while_optimising, 'Checked', 'off')
4417 end  
4418 
4419 
4420 function abort_Callback(hObject, eventdata, handles)
4421 
4422 error('Registration Aborted');
4423 
4424 
4425 function verbose_disabled_Callback(hObject, eventdata, handles)
4426 
4427     set(handles.verbose_optimiser_flag, 'String', 'off');
4428     set(handles.verbose_disabled, 'Checked', 'on');
4429     set(handles.verbose_iteration, 'Checked', 'off');
4430     set(handles.verbose_notify, 'Checked', 'off');
4431     set(handles.verbose_final, 'Checked', 'off');
4432     
4433 function verbose_iterations_Callback(hObject, eventdata, handles)
4434 
4435     set(handles.verbose_optimiser_flag, 'String', 'iter');
4436     set(handles.verbose_disabled, 'Checked', 'off');
4437     set(handles.verbose_iteration, 'Checked', 'on');
4438     set(handles.verbose_notify, 'Checked', 'off');
4439     set(handles.verbose_final, 'Checked', 'off');
4440 
4441 
4442 function verbose_notify_Callback(hObject, eventdata, handles)
4443 
4444     set(handles.verbose_optimiser_flag, 'String', 'notify');
4445     set(handles.verbose_disabled, 'Checked', 'off');
4446     set(handles.verbose_iteration, 'Checked', 'off');
4447     set(handles.verbose_notify, 'Checked', 'on');
4448     set(handles.verbose_final, 'Checked', 'off');
4449 
4450 
4451 function verbose_final_Callback(hObject, eventdata, handles)
4452 
4453     set(handles.verbose_optimiser_flag, 'String', 'final');
4454     set(handles.verbose_disabled, 'Checked', 'off');
4455     set(handles.verbose_iteration, 'Checked', 'off');
4456     set(handles.verbose_notify, 'Checked', 'off');
4457     set(handles.verbose_final, 'Checked', 'on');
4458 
4459 function description_CreateFcn(hObject, eventdata, handles)
4460 
4461 if ispc
4462     set(hObject,'BackgroundColor','white');
4463 else
4464     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
4465 end
4466 
4467 
4468 
4469 
4470 
4471 function description_Callback(hObject, eventdata, handles)
4472 
4473 
4474 function clear_status_bar_Callback(hObject, eventdata, handles)
4475 
4476 set(handles.status_bar, 'String', '');
4477 
4478 
4479 
4480 function handle_auto_Callback(hObject, eventdata, handles)
4481 
4482 
4483 set(handles.filename_handle, 'String', [['Registration attempt number ']]);
4484 
4485 
4486 function desc_auto_Callback(hObject, eventdata, handles)
4487 
4488 set(handles.description, 'String', [['Registration using '], ...
4489         [get(handles.objective_function_display,'String')], ...
4490         [' with '], [get(handles.spline_type_display,'String')], [' warps']]);
4491 
4492 function handle_clear_Callback(hObject, eventdata, handles)
4493 set(handles.filename_handle, 'String', '');
4494 
4495 function desc_clear_Callback(hObject, eventdata, handles)
4496 set(handles.description, 'String', '');
4497 
4498 function handle_rand_Callback(hObject, eventdata, handles)
4499 set(handles.filename_handle, 'String', num2str(ceil(rand * 10000000)));
4500 
4501 function desc_rand_Callback(hObject, eventdata, handles)
4502 set(handles.description, 'String', num2str(ceil(rand * 10000000)));
4503 
4504 
4505 function find_perfect_warp_menu_Callback(hObject, eventdata, handles)
4506 
4507 if (str2num(getappdata(0, 'find_perfect_warp')) == 0),
4508     setappdata(0, 'find_perfect_warp', '1');
4509     set(handles.find_perfect_warp_menu, 'Checked', 'on');
4510 else
4511     setappdata(0, 'find_perfect_warp', '0');
4512     set(handles.find_perfect_warp_menu, 'Checked', 'off');    
4513 end
4514 
4515 
4516 function first_reference_menu_Callback(hObject, eventdata, handles)
4517 
4518 setappdata(0, 'force_first_reference', '1');
4519 
4520 set(handles.first_reference_menu, 'Checked', 'on'); 
4521 set(handles.second_reference_menu, 'Checked', 'off'); 
4522 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4523 set(handles.random_reference_menu, 'Checked', 'off'); 
4524 set(handles.reference_farthest_from_average_menu, 'Checked', 'off');
4525 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4526 set(handles.highest_reference_menu, 'Checked', 'off'); 
4527 
4528 
4529 function second_reference_menu_Callback(hObject, eventdata, handles)
4530 
4531 setappdata(0, 'force_first_reference', '0');
4532 
4533 set(handles.first_reference_menu, 'Checked', 'off'); 
4534 set(handles.second_reference_menu, 'Checked', 'on'); 
4535 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4536 set(handles.random_reference_menu, 'Checked', 'off'); 
4537 set(handles.reference_farthest_from_average_menu, 'Checked', 'off');
4538 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4539 set(handles.highest_reference_menu, 'Checked', 'off'); 
4540 
4541 
4542 function reference_nearest_to_average_menu_Callback(hObject, eventdata, handles)
4543 
4544 setappdata(0, 'force_first_reference', '2');
4545 
4546 set(handles.first_reference_menu, 'Checked', 'off'); 
4547 set(handles.second_reference_menu, 'Checked', 'off'); 
4548 set(handles.reference_nearest_to_average_menu, 'Checked', 'on'); 
4549 set(handles.random_reference_menu, 'Checked', 'off');
4550 set(handles.reference_farthest_from_average_menu, 'Checked', 'off');
4551 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4552 set(handles.highest_reference_menu, 'Checked', 'off'); 
4553 
4554 function random_reference_menu_Callback(hObject, eventdata, handles)
4555 
4556 setappdata(0, 'force_first_reference', '3');
4557 
4558 set(handles.random_reference_menu, 'Checked', 'on'); 
4559 set(handles.first_reference_menu, 'Checked', 'off'); 
4560 set(handles.second_reference_menu, 'Checked', 'off'); 
4561 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4562 set(handles.reference_farthest_from_average_menu, 'Checked', 'off');
4563 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4564 set(handles.highest_reference_menu, 'Checked', 'off'); 
4565 
4566 function reference_farthest_from_average_menu_Callback(hObject, eventdata, handles)
4567 
4568 setappdata(0, 'force_first_reference', '4');
4569 
4570 set(handles.random_reference_menu, 'Checked', 'off'); 
4571 set(handles.first_reference_menu, 'Checked', 'off'); 
4572 set(handles.second_reference_menu, 'Checked', 'off'); 
4573 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4574 set(handles.reference_farthest_from_average_menu, 'Checked', 'on'); 
4575 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4576 set(handles.highest_reference_menu, 'Checked', 'off'); 
4577 
4578 function lowest_reference_menu_Callback(hObject, eventdata, handles)
4579 
4580 setappdata(0, 'force_first_reference', '6');
4581 
4582 set(handles.random_reference_menu, 'Checked', 'off'); 
4583 set(handles.first_reference_menu, 'Checked', 'off'); 
4584 set(handles.second_reference_menu, 'Checked', 'off'); 
4585 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4586 set(handles.reference_farthest_from_average_menu, 'Checked', 'off'); 
4587 set(handles.lowest_reference_menu, 'Checked', 'on'); 
4588 set(handles.highest_reference_menu, 'Checked', 'off'); 
4589 
4590 function highest_reference_menu_Callback(hObject, eventdata, handles)
4591 
4592 setappdata(0, 'force_first_reference', '5');
4593 
4594 set(handles.random_reference_menu, 'Checked', 'off'); 
4595 set(handles.first_reference_menu, 'Checked', 'off'); 
4596 set(handles.second_reference_menu, 'Checked', 'off'); 
4597 set(handles.reference_nearest_to_average_menu, 'Checked', 'off'); 
4598 set(handles.reference_farthest_from_average_menu, 'Checked', 'off'); 
4599 set(handles.lowest_reference_menu, 'Checked', 'off'); 
4600 set(handles.highest_reference_menu, 'Checked', 'on'); 
4601 
4602 
4603 
4604 
4605 
4606 
4607 
4608 
4609 function display_shape_model_menu_Callback(hObject, eventdata, handles)
4610 
4611 
4612 
4613 if (str2num(getappdata(0, 'display_shape_model')) == 0),
4614     setappdata(0, 'display_shape_model', '1');
4615     set(handles.display_shape_model_menu, 'Checked', 'on');
4616 else
4617     setappdata(0, 'display_shape_model', '0');
4618     set(handles.display_shape_model_menu, 'Checked', 'off');    
4619 end  
4620 
4621 
4622 function display_intensity_model_menu_Callback(hObject, eventdata, handles)
4623 
4624 
4625 
4626 if (str2num(getappdata(0, 'display_intensity_model')) == 0),
4627     setappdata(0, 'display_intensity_model', '1');
4628     set(handles.display_intensity_model_menu, 'Checked', 'on');
4629 else
4630     setappdata(0, 'display_intensity_model', '0');
4631     set(handles.display_intensity_model_menu, 'Checked', 'off');    
4632 end  
4633 
4634 
4635 
4636 
4637 function plot_alignment_button_Callback(hObject, eventdata, handles)
4638 
4639 if (get(handles.plot_alignment_button,'Value') == 0),
4640     set(handles.plot_alignment_button, 'Value', 0);
4641     setappdata(0, 'plot_alignment', '0');
4642 else
4643     set(handles.plot_alignment_button, 'Value', 1);
4644     setappdata(0, 'plot_alignment', '1');
4645 end
4646 
4647 
4648 function verbosity_normal_Callback(hObject, eventdata, handles)
4649 
4650 setappdata(0, 'error_verbosity', 'normal');
4651 set(handles.verbosity_low, 'Checked', 'off');
4652 set(handles.verbosity_normal, 'Checked', 'on');
4653 set(handles.verbosity_high, 'Checked', 'off');
4654 
4655 
4656 function verbosity_low_Callback(hObject, eventdata, handles)
4657 
4658 setappdata(0, 'error_verbosity', 'low');
4659 set(handles.verbosity_low, 'Checked', 'on');
4660 set(handles.verbosity_normal, 'Checked', 'off');
4661 set(handles.verbosity_high, 'Checked', 'off');
4662 
4663 function verbosity_high_Callback(hObject, eventdata, handles)
4664 
4665 setappdata(0, 'error_verbosity', 'high');
4666 set(handles.verbosity_low, 'Checked', 'off');
4667 set(handles.verbosity_normal, 'Checked', 'off');
4668 set(handles.verbosity_high, 'Checked', 'on');
4669 
4670 function error_verbosity_menu_Callback(hObject, eventdata, handles)
4671 
4672 
4673 
4674 function input_output_menu_Callback(hObject, eventdata, handles)
4675 
4676 
4677 function precision_9_Callback(hObject, eventdata, handles)
4678 
4679 setappdata(0, 'precision_required', '1e-9');
4680 
4681 set(handles.precision_5, 'Checked', 'on');
4682 set(handles.precision_6, 'Checked', 'off');
4683 set(handles.precision_7, 'Checked', 'off');
4684 set(handles.precision_8, 'Checked', 'off');
4685 set(handles.precision_9, 'Checked', 'off');
4686 set(handles.precision_10, 'Checked', 'off');
4687 set(handles.precision_12, 'Checked', 'off');
4688 set(handles.precision_15, 'Checked', 'off');
4689 set(handles.precision_3, 'Checked', 'off');
4690 set(handles.precision_4, 'Checked', 'off');
4691 
4692 function precision_8_Callback(hObject, eventdata, handles)
4693 
4694 setappdata(0, 'precision_required', '1e-8');
4695 set(handles.precision_5, 'Checked', 'off');
4696 set(handles.precision_6, 'Checked', 'off');
4697 set(handles.precision_7, 'Checked', 'off');
4698 set(handles.precision_8, 'Checked', 'off');
4699 set(handles.precision_9, 'Checked', 'off');
4700 set(handles.precision_10, 'Checked', 'off');
4701 set(handles.precision_12, 'Checked', 'off');
4702 set(handles.precision_15, 'Checked', 'off');
4703 set(handles.precision_3, 'Checked', 'off');
4704 set(handles.precision_4, 'Checked', 'off');
4705 
4706 function precision_6_Callback(hObject, eventdata, handles)
4707 
4708 setappdata(0, 'precision_required', '1e-6');
4709 set(handles.precision_5, 'Checked', 'off');
4710 set(handles.precision_6, 'Checked', 'on');
4711 set(handles.precision_7, 'Checked', 'off');
4712 set(handles.precision_8, 'Checked', 'off');
4713 set(handles.precision_9, 'Checked', 'off');
4714 set(handles.precision_10, 'Checked', 'off');
4715 set(handles.precision_12, 'Checked', 'off');
4716 set(handles.precision_15, 'Checked', 'off');
4717 set(handles.precision_3, 'Checked', 'off');
4718 set(handles.precision_4, 'Checked', 'off');
4719 
4720 function precision_5_Callback(hObject, eventdata, handles)
4721 
4722 setappdata(0, 'precision_required', '1e-5');
4723 set(handles.precision_5, 'Checked', 'on');
4724 set(handles.precision_6, 'Checked', 'off');
4725 set(handles.precision_7, 'Checked', 'off');
4726 set(handles.precision_8, 'Checked', 'off');
4727 set(handles.precision_9, 'Checked', 'off');
4728 set(handles.precision_10, 'Checked', 'off');
4729 set(handles.precision_12, 'Checked', 'off');
4730 set(handles.precision_15, 'Checked', 'off');
4731 set(handles.precision_3, 'Checked', 'off');
4732 set(handles.precision_4, 'Checked', 'off');
4733 
4734 function precision_7_Callback(hObject, eventdata, handles)
4735 
4736 setappdata(0, 'precision_required', '1e-7');
4737 set(handles.precision_5, 'Checked', 'off');
4738 set(handles.precision_6, 'Checked', 'off');
4739 set(handles.precision_7, 'Checked', 'on');
4740 set(handles.precision_8, 'Checked', 'off');
4741 set(handles.precision_9, 'Checked', 'off');
4742 set(handles.precision_10, 'Checked', 'off');
4743 set(handles.precision_12, 'Checked', 'off');
4744 set(handles.precision_15, 'Checked', 'off');
4745 set(handles.precision_3, 'Checked', 'off');
4746 set(handles.precision_4, 'Checked', 'off');
4747 
4748 function precision_10_Callback(hObject, eventdata, handles)
4749 
4750 setappdata(0, 'precision_required', '1e-10');
4751 set(handles.precision_5, 'Checked', 'off');
4752 set(handles.precision_6, 'Checked', 'off');
4753 set(handles.precision_7, 'Checked', 'off');
4754 set(handles.precision_8, 'Checked', 'off');
4755 set(handles.precision_9, 'Checked', 'off');
4756 set(handles.precision_10, 'Checked', 'on');
4757 set(handles.precision_12, 'Checked', 'off');
4758 set(handles.precision_15, 'Checked', 'off');
4759 set(handles.precision_3, 'Checked', 'off');
4760 set(handles.precision_4, 'Checked', 'off');
4761 
4762 function precision_12_Callback(hObject, eventdata, handles)
4763 
4764 setappdata(0, 'precision_required', '1e-12');
4765 set(handles.precision_5, 'Checked', 'off');
4766 set(handles.precision_6, 'Checked', 'off');
4767 set(handles.precision_7, 'Checked', 'off');
4768 set(handles.precision_8, 'Checked', 'off');
4769 set(handles.precision_9, 'Checked', 'off');
4770 set(handles.precision_10, 'Checked', 'off');
4771 set(handles.precision_12, 'Checked', 'on');
4772 set(handles.precision_15, 'Checked', 'off');
4773 set(handles.precision_3, 'Checked', 'off');
4774 set(handles.precision_4, 'Checked', 'off');
4775 
4776 function precision_15_Callback(hObject, eventdata, handles)
4777 
4778 setappdata(0, 'precision_required', '1e-15');
4779 set(handles.precision_5, 'Checked', 'off');
4780 set(handles.precision_6, 'Checked', 'off');
4781 set(handles.precision_7, 'Checked', 'off');
4782 set(handles.precision_8, 'Checked', 'off');
4783 set(handles.precision_9, 'Checked', 'off');
4784 set(handles.precision_10, 'Checked', 'off');
4785 set(handles.precision_12, 'Checked', 'off');
4786 set(handles.precision_15, 'Checked', 'on');
4787 set(handles.precision_3, 'Checked', 'off');
4788 set(handles.precision_4, 'Checked', 'off');
4789 
4790 function precision_4_Callback(hObject, eventdata, handles)
4791 
4792 setappdata(0, 'precision_required', '1e-4');
4793 set(handles.precision_5, 'Checked', 'off');
4794 set(handles.precision_6, 'Checked', 'off');
4795 set(handles.precision_7, 'Checked', 'off');
4796 set(handles.precision_8, 'Checked', 'off');
4797 set(handles.precision_9, 'Checked', 'off');
4798 set(handles.precision_10, 'Checked', 'off');
4799 set(handles.precision_12, 'Checked', 'off');
4800 set(handles.precision_15, 'Checked', 'off');
4801 set(handles.precision_3, 'Checked', 'off');
4802 set(handles.precision_4, 'Checked', 'on');
4803 
4804 function precision_3_Callback(hObject, eventdata, handles)
4805 
4806 setappdata(0, 'precision_required', '1e-3');
4807 set(handles.precision_5, 'Checked', 'off');
4808 set(handles.precision_6, 'Checked', 'off');
4809 set(handles.precision_7, 'Checked', 'off');
4810 set(handles.precision_8, 'Checked', 'off');
4811 set(handles.precision_9, 'Checked', 'off');
4812 set(handles.precision_10, 'Checked', 'off');
4813 set(handles.precision_12, 'Checked', 'off');
4814 set(handles.precision_15, 'Checked', 'off');
4815 set(handles.precision_3, 'Checked', 'on');
4816 set(handles.precision_4, 'Checked', 'off');
4817 
4818 function set_background_colour_Callback(hObject, eventdata, handles)
4819 
4820 RGB = uisetcolor;
4821 
4822 % open dialog to select colour for background of plots
4823 
4824 
4825 if (size(RGB, 2) == 3),
4826       % just in case the dialog was closed
4827     setappdata(0, 'background_colour_red', num2str(RGB(1)));
4828     setappdata(0, 'background_colour_green', num2str(RGB(2)));
4829     setappdata(0, 'background_colour_blue', num2str(RGB(3)));
4830 end    
4831 
4832 % May 2004: yet not fully used
4833 
4834 
4835 
4836 function dynamic_precision_Callback(hObject, eventdata, handles)
4837 
4838 
4839 if (str2num(getappdata(0, 'dynamic_precision')) == 0),
4840     set(handles.dynamic_precision, 'Checked', 'on');
4841     setappdata(0, 'dynamic_precision', '1');
4842 else
4843     set(handles.dynamic_precision, 'Checked', 'off');
4844     setappdata(0, 'dynamic_precision', '0');
4845 end
4846 
4847 
4848 function clone_menu_Callback(hObject, eventdata, handles)
4849 
4850   register;
4851 
4852 
4853 function clone_Callback(hObject, eventdata, handles)
4854 
4855 
4856   register;
4857 
4858 function show_icons_Callback(hObject, eventdata, handles)
4859 
4860   set(handles.resume, 'cdata', playbutton);
4861   set(handles.pause, 'cdata', stopbutton);
4862   set(handles.register_1d, 'cdata', registerbutton);
4863   set(handles.help_button, 'cdata', helpbutton);
4864   set(handles.abort, 'cdata', abortbutton);
4865   set(handles.reset, 'cdata', resetbutton);
4866   
4867   set(handles.show_icons, 'Checked', 'on');
4868   set(handles.hide_icons, 'Checked', 'off');
4869 
4870 
4871 function hide_icons_Callback(hObject, eventdata, handles)
4872 
4873   set(handles.resume, 'cdata', []);
4874   set(handles.pause, 'cdata', []);
4875   set(handles.register_1d, 'cdata', []);
4876   set(handles.help_button, 'cdata', []);
4877   set(handles.abort, 'cdata', []);
4878   set(handles.reset, 'cdata', []);
4879   
4880   set(handles.show_icons, 'Checked', 'off');
4881   set(handles.hide_icons, 'Checked', 'on');
4882   
4883   
4884 function document_code_Callback(hObject, eventdata, handles)
4885 
4886   
4887   document_aart;
4888   
4889 function redefine_paths_Callback(hObject, eventdata, handles)
4890 
4891   
4892   path;
4893 
4894 function application_editor_Callback(hObject, eventdata, handles)
4895 
4896   msgbox('To prevent conflicting modifications, please contact Roy Schestowitz before making any changes.','Important Notification');
4897   mb;
4898 
4899   
4900 function default_auto_Callback(hObject, eventdata, handles)  
4901 
4902   setappdata(0, 'automatic_precision_type', 'default');
4903   set(handles.default_auto, 'Checked', 'on');
4904   set(handles.smart_auto, 'Checked', 'off');
4905   
4906 function smart_auto_Callback(hObject, eventdata, handles)  
4907   
4908   setappdata(0, 'automatic_precision_type', 'smart');
4909   set(handles.default_auto, 'Checked', 'off');
4910   set(handles.smart_auto, 'Checked', 'on');
4911   
4912   
4913 function rotate_surface_Callback(hObject, eventdata, handles)   
4914   if (str2num(getappdata(0, 'rotate_surface')) == 0),
4915     set(handles.rotate_surface, 'Value', 1);
4916     setappdata(0, 'rotate_surface', '1');
4917   else
4918     set(handles.rotate_surface, 'Value', 0);
4919     setappdata(0, 'rotate_surface', '0');
4920   end
4921 
4922   
4923 function Sum_of_Squared_Distances_Callback(hObject, eventdata, handles)
4924 
4925   setappdata(0, 'distance_type', 'sum_of_squared_distances');  
4926   set(handles.Sum_of_Squared_Distances, 'Checked', 'on');
4927   set(handles.Absolute_Distances, 'Checked', 'off');
4928   
4929 function Absolute_Distances_Callback(hObject, eventdata, handles)   
4930 
4931   setappdata(0, 'distance_type', 'absolute_values');
4932   set(handles.Sum_of_Squared_Distances, 'Checked', 'off');
4933   set(handles.Absolute_Distances, 'Checked', 'on');
4934 
4935 function retain_original_peak_menu_Callback(hObject, eventdata, handles)    
4936   
4937 if (str2num(getappdata(0, 'retain_original_peak')) == 0),  
4938   setappdata(0, 'retain_original_peak', '1');
4939   set(handles.retain_original_peak_menu, 'Checked', 'on');
4940 else
4941   setappdata(0, 'retain_original_peak', '0');
4942   set(handles.retain_original_peak_menu, 'Checked', 'off');
4943 end
4944 
4945 
4946 function peak_type_average_menu_Callback(hObject, eventdata, handles)
4947   
4948 setappdata(0, 'peak_type', 'average_position');
4949 set(handles.peak_type_average_menu, 'Checked', 'on');
4950 set(handles.peak_type_initial_menu, 'Checked', 'off');
4951 
4952 
4953 function peak_type_initial_menu_Callback(hObject, eventdata, handles)    
4954   
4955 setappdata(0, 'peak_type', 'initial_position');
4956 set(handles.peak_type_average_menu, 'Checked', 'off');
4957 set(handles.peak_type_initial_menu, 'Checked', 'on');
4958 
4959 
4960 function add_points_menu_Callback(hObject, eventdata, handles)   
4961 if (str2num(getappdata(0, 'add_points')) == 0),  
4962   setappdata(0, 'add_points', '1');
4963   set(handles.add_points_menu, 'Checked', 'on');
4964 else
4965   setappdata(0, 'add_points', '0');
4966   set(handles.add_points_menu, 'Checked', 'off');
4967 end

Generated on Thu 13-May-2004 18:00:46 by m2html © 2003