function[dpf,GW,err] = optconv(F,roi,G,sig,max) [row,col] = size(F); [Mx,My] = meshgrid(1:col,1:row); inds = find(roi); G = G; err(1) = norm( G(inds) - F(inds)); dpf = optflow(F,roi,G,sig) GW = interp2(Mx,My,G,Mx-dpf(1),My-dpf(2), 'bilinear'); err(2) = norm( GW(inds) - F(inds) ); c = 1; while ( c <= max ) dpi = optflow(F,roi,GW,sig); dpf = dpf + dpi; GW = interp2(Mx,My,G,Mx-dpf(1), My-dpf(2), 'bilinear'); err(c+2) = norm( GW(inds) - F(inds) ); % imagesc(roi.*(GW-F),[-2,2]); % con = input('iterate ...'); c = c+1; if ( c == max / 2 ) sig = sig * 0.5; end end