


intShiftIm: shifts image 'imIn' by the parameters in 'out'
out is produced by intAlignIm( imA, imB, precision ).
INPUT :
imIn : input image
out : output of intAlignIm,
where the 3rd element is the row_shift and 4th and col_shift
OUTPUT :
imOut : shifted image
Copyright (C) 2016 Wiggins Lab
Written by Paul Wiggins.
University of Washington, 2016
This file is part of SuperSegger.
SuperSegger is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SuperSegger is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SuperSegger. If not, see <http://www.gnu.org/licenses/>.

0001 function imOut = intShiftIm( imIn, out ) 0002 % intShiftIm: shifts image 'imIn' by the parameters in 'out' 0003 % out is produced by intAlignIm( imA, imB, precision ). 0004 % 0005 % INPUT : 0006 % imIn : input image 0007 % out : output of intAlignIm, 0008 % where the 3rd element is the row_shift and 4th and col_shift 0009 % 0010 % OUTPUT : 0011 % imOut : shifted image 0012 % 0013 % Copyright (C) 2016 Wiggins Lab 0014 % Written by Paul Wiggins. 0015 % University of Washington, 2016 0016 % This file is part of SuperSegger. 0017 % 0018 % SuperSegger is free software: you can redistribute it and/or modify 0019 % it under the terms of the GNU General Public License as published by 0020 % the Free Software Foundation, either version 3 of the License, or 0021 % (at your option) any later version. 0022 % 0023 % SuperSegger is distributed in the hope that it will be useful, 0024 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0025 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0026 % GNU General Public License for more details. 0027 % 0028 % You should have received a copy of the GNU General Public License 0029 % along with SuperSegger. If not, see <http://www.gnu.org/licenses/>. 0030 0031 0032 fftB = fft2(imIn); % fourier transform 0033 0034 deltar = out(3); % net_row_shift in subpixel 0035 deltac = out(4); % net_col_shift in subpixel 0036 0037 phase = 0; 0038 [nr,nc] = size(imIn); % nr : num of rows, nc : num of columns 0039 Nr = ifftshift(-fix(nr/2):ceil(nr/2)-1); % swaps the left and right halves 0040 Nc = ifftshift(-fix(nc/2):ceil(nc/2)-1); 0041 [Nc,Nr] = meshgrid(Nc,Nr); 0042 0043 fftB = fftB.*exp(1i*2*pi*(deltar*Nr/nr+deltac*Nc/nc)); 0044 0045 imOut = (real(ifft2(fftB).*exp(-1i*phase))); 0046 0047 end