Exemplo n.º 1
0
def alternating_alignments_nonlinear(X,Y,proj_align,corr_align,threshold,max_iters):
  corr = Correspondence(pairs=np.array(((0,0),(X.shape[0]-1,Y.shape[0]-1))))
  X_proj,Y_proj = proj_align(X,Y,corr)
  for it in xrange(max_iters):
    new_corr = corr_align(X_proj,Y_proj)
    if corr.dist_from(new_corr) < threshold:
      return new_corr, X_proj, Y_proj
    corr = new_corr
    X_proj,Y_proj = proj_align(X_proj,Y_proj,corr)
  return corr, X_proj, Y_proj
Exemplo n.º 2
0
def alternating_alignments(X,Y,proj_align,corr_align,threshold,max_iters):
  corr = Correspondence(pairs=np.array(((0,0),(X.shape[0]-1,Y.shape[0]-1))))
  aln = TrivialAlignment(X,Y)
  X_proj,Y_proj = X.copy(), Y.copy()  # same as aln.project(X,Y)
  for it in xrange(max_iters):
    aln.apply_transform(proj_align(X_proj,Y_proj,corr))
    X_proj,Y_proj = aln.project(X,Y)
    new_corr = corr_align(X_proj,Y_proj)
    if corr.dist_from(new_corr) < threshold:
      return new_corr, aln
    corr = new_corr
  return corr, aln