function registered = registerImages(base_file,unregistered_file,base_landmarks,unregistered_landmarks) % registerImages Register template (base_file) to target (unregistered_file) with % (base_landmarks) and (unregistered_landmarks), using thin plate spline warping % % % Copyright © 2009-2010 Center for Digital Humanities and the Department of % Computer Science at the University of South Carolina if nargin < 3 % read in landmark files fid1 = fopen([unregistered_file '_landmarks']); if(fid1 ~= -1) fclose(fid1); unregistered_landmarks = load([unregistered_file '_landmarks']); else unregistered_landmarks = []; end fid2 = fopen([base_file '_landmarks']); if(fid2 ~= -1) fclose(fid2); base_landmarks = load([base_file '_landmarks']); else base_landmarks = []; end % read in image files unregistered = imread(unregistered_file); base = imread(base_file); %provide tool for user to select matching landmarks if(isempty(base_landmarks)==0 || isempty(unregistered_landmarks) == 0) [unregistered_landmarks, base_landmarks] = cpselect(unregistered,base,unregistered_landmarks,base_landmarks,'Wait',true); else [unregistered_landmarks, base_landmarks] = cpselect(unregistered,base,'Wait',true); end dlmwrite([unregistered_file '_landmarks'],unregistered_landmarks,' '); dlmwrite([base_file '_landmarks'],base_landmarks,' '); else unregistered = unregistered_file; base = base_file; end % calculate transorm base_landmarks = fliplr(base_landmarks); unregistered_landmarks=fliplr(unregistered_landmarks); tform = findTransform(base_landmarks,unregistered_landmarks); % transform image registered = base; [registered,tlandmarks] = tpsTransformImage(base,unregistered,tform,base_landmarks); fliplr(tlandmarks); end