


==============================================================
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
==============================================================

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