Source code for tike.ptycho.learn

"""Implements functions for ptychographic deep learning."""

__author__ = "Daniel Ching"
__copyright__ = "Copyright (c) 2021, UChicago Argonne, LLC."

from tike.operators import Patch
from .position import check_allowed_positions


[docs]def extract_patches(psi, scan, patch_width): """Extract patches from the object function. Parameters ---------- scan : (..., POSI, 2) float32 Coordinates of the minimum corner of the patch grid for each extracted patch. psi : (..., WIDE, HIGH) complex64 The complex wavefront modulation of the object. patch_width : int The desired width of the square patches to be extraced. Returns ------- patches : (..., POSI, patch_width, patch_width) complex64 numpy-array Patches of psi extracted at the given scan positions. """ check_allowed_positions(scan, psi, (patch_width, patch_width)) with Patch() as operator: psi = operator.asarray(psi) scan = operator.asarray(scan) patches = operator.fwd( images=psi, positions=scan, patch_width=patch_width, ) patches = operator.asnumpy(patches) return patches