pyFM.refine.zoomout.zoomout_refine

pyFM.refine.zoomout.zoomout_refine(FM_12, evects1, evects2, nit=10, step=1, A2=None, subsample=None, return_p2p=False, n_jobs=None, verbose=False)

Refine a functional map with ZoomOut.

Supports subsampling for each mesh, different step size, and approximate nearest neighbor.

Parameters:
  • FM_12 ((k2, k1) np.ndarray) – Functional map from shape 1 to shape 2.

  • evects1 ((n1, k1') np.ndarray) – Eigenvectors on source shape with k1’ >= k1 + nit * step.

  • evects2 ((n2, k2') np.ndarray) – Eigenvectors on target shape with k2’ >= k2 + nit * step.

  • nit (int, optional) – Number of iterations of ZoomOut.

  • step (int or tuple, optional) – Increase in dimension at each ZoomOut iteration. A tuple gives separate steps for each shape.

  • A2 ((n2, n2) scipy.sparse, optional) – Area matrix on target mesh.

  • subsample (tuple or iterable of size 2, optional) – Each element gives indices of vertices to sample for faster optimization. If not specified, no subsampling is done.

  • return_p2p (bool, optional) – If True, also return the vertex to vertex map.

  • n_jobs (int, optional) – Number of parallel jobs. None (default) decides automatically, -1 uses all processes.

  • verbose (bool, optional) – Whether to display a progress bar.

Returns:

  • FM_12_zo ((k2 + nit * step, k1 + nit * step) np.ndarray) – ZoomOut-refined functional map from basis 1 to 2.

  • p2p_21_zo ((n2,) np.ndarray) – Only if return_p2p is set to True - the refined pointwise map from basis 2 to basis 1.