ImageProcessing.refine_edges_zernike_ramp

giant.image_processing:

ImageProcessing.refine_edges_zernike_ramp(image, pixel_edges=None)[source]

This method refines edge locations using the Zernike Ramp method described in https://arc.aiaa.org/doi/full/10.2514/1.A33692?mobileUi=0.

The subpixel edge locations are found by computing the inner product between precomputed Zernike moments and the image data around the pixel level edges, and then computing a correction to the pixel level edge (see the paper for details).

There is one tuning parameter for this method and that is the half edge width which is specified in the zernike_edge_width attribute. This should be set to roughly half the total edge length in pixels, which is typically approximately 1.66*sigma where sigma is the point spread function full width half maximum for the camera.

This method returns a 2xn array of subpixel edge points, leaving the pixel level edge points for areas where it failed.

Parameters:
  • image (ndarray) – The image which the edge points index into

  • pixel_edges (ndarray | None) – the pixel level edge points to be refined. If none then they will be computed for the whole image

Returns:

A 2xn array of subpixel edge points (col [x], row[y])

Return type:

ndarray