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

Generated on Fri 14-May-2004 10:05:30 by m2html © 2003