Home > Source > Redundancy > optimise_warps.m

optimise_warps

PURPOSE ^

==============================================================

SYNOPSIS ^

function [param_list, warped_points, warped_image, score] = optimise_warps(ref_image, ref_points, unwarped_image, unwarped_points, spline_type, placement_method, n_points, verbose, do_plot, subplot_fig, pane)

DESCRIPTION ^

 ==============================================================
 OPTIMISE_WAPRS: 

 Code written by Katherine Smith, 2003

    GENERAL

      [param_list, warped_points, warped_image, score] = 
        optimise_warps(ref_image, ref_points, unwarped_image, 
        unwarped_points, spline_type, placement_method, n_points, 
        verbose, do_plot, subplot_fig, pane)

    INPUT/S

      -X:
          X
           
    OUTPUT/S

      -X:
           X

    PENDING WORK
      
      

    KNOWN BUG/S

      

    COMMENT/S

      -This function was moved and made redandant in May 2004. It was
      only used by older functions, namely:
           eval_obj_fn_to_mean_surf.m , eval_obj_fn_to_mean.m,
           build_1d_model_2_bump.m

    RELATED FUNCTION/S

      

    ABOUT

      -Created:     November 23rd, 2003
      -Last update: December 1st, 2003
      -Revision:    0.0.2
      -Author:      R. S. Schestowitz, University of Manchester
 ==============================================================

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [param_list, warped_points, warped_image, score] = optimise_warps(ref_image, ref_points, unwarped_image, unwarped_points, spline_type, placement_method, n_points, verbose, do_plot, subplot_fig, pane)
0002 % ==============================================================
0003 % OPTIMISE_WAPRS:
0004 %
0005 % Code written by Katherine Smith, 2003
0006 %
0007 %    GENERAL
0008 %
0009 %      [param_list, warped_points, warped_image, score] =
0010 %        optimise_warps(ref_image, ref_points, unwarped_image,
0011 %        unwarped_points, spline_type, placement_method, n_points,
0012 %        verbose, do_plot, subplot_fig, pane)
0013 %
0014 %    INPUT/S
0015 %
0016 %      -X:
0017 %          X
0018 %
0019 %    OUTPUT/S
0020 %
0021 %      -X:
0022 %           X
0023 %
0024 %    PENDING WORK
0025 %
0026 %
0027 %
0028 %    KNOWN BUG/S
0029 %
0030 %
0031 %
0032 %    COMMENT/S
0033 %
0034 %      -This function was moved and made redandant in May 2004. It was
0035 %      only used by older functions, namely:
0036 %           eval_obj_fn_to_mean_surf.m , eval_obj_fn_to_mean.m,
0037 %           build_1d_model_2_bump.m
0038 %
0039 %    RELATED FUNCTION/S
0040 %
0041 %
0042 %
0043 %    ABOUT
0044 %
0045 %      -Created:     November 23rd, 2003
0046 %      -Last update: December 1st, 2003
0047 %      -Revision:    0.0.2
0048 %      -Author:      R. S. Schestowitz, University of Manchester
0049 % ==============================================================
0050 
0051 [grid, steps] = setup_grid(2, unwarped_image, ref_points, placement_method, n_points);
0052 % set up the grid
0053 
0054 if(do_plot) % if <do_plot> then show the unwarped image
0055   figure(subplot_fig),subplot(10,2,pane,'replace'),plot(unwarped_image); drawnow;
0056 end
0057 
0058 warp_params.green = 'biharmCPS'; % initilaise some variables here
0059 param_list = [];
0060 start_image = unwarped_image;
0061 start_points = unwarped_points;
0062 
0063 %last_score = msd(ref_image, unwarped_image);
0064 
0065 if(strcmp(spline_type,'single_point'))
0066   for i=1:size(grid,2) % for all grid size
0067     [params, score] = fminsearch(@eval_msd_cps_warp,[0],optimset('Display',verbose),grid(i),steps(i),start_points, start_image, ref_image, verbose); % warp it
0068 %    [params, score] = fminsearch(@eval_msd_cps_warp,[0],optimset('Display',verbose),grid(i),steps(i),start_points, start_image, ref_image, verbose);
0069     param_list(size(param_list,1)+1).d = params; % get parameters of warped image
0070     start_points = cps_warp_1d(start_points, grid(i), steps(i), params(1));
0071     start_image = interp1(ref_points,unwarped_image,start_points, 'linear',0);
0072     % step to next image and points
0073     last_score = score; % currently unused?
0074   end
0075 elseif(strcmp(spline_type,'multi_point'))
0076   warped_grid = grid;
0077   warp_params.green = 'biharmCPS';
0078   last_score = eval_msd_multi_warp(zeros(size(grid)),grid, unwarped_image, unwarped_points, ref_image, ref_points, 20, warp_params);
0079   [params, score] = fminsearch(@eval_msd_multi_warp,zeros(size(grid)),optimset('Display',verbose,'TolX',1e-10),grid, unwarped_image, unwarped_points, ref_image, ref_points, 20, warp_params);
0080   param_list(size(param_list,1)+1,:).d = params; % get parameters returned
0081   warped_grid = grid + params;
0082   start_points = nrr_trans_1d(start_points, grid, warped_grid, warp_params,[]);
0083   start_image = interp1(unwarped_points,unwarped_image,start_points, 'linear',0);
0084 % step forward to next image and points
0085   disp(['Initial score: ',num2str(last_score),' Final score: ',num2str(score)]);
0086 % display the score/s
0087 end
0088 
0089 warped_points = start_points;
0090 warped_image = start_image;
0091 if(do_plot) % if <do_plot> show results after warping
0092   figure(subplot_fig),subplot(10,2,pane,'replace'),plot(warped_image); drawnow;
0093 end

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