Image Processing

Centroiders

Functions for centroiding images.

aotools.image_processing.centroiders.brightest_pixel(img, threshold, **kwargs)[source]

Centroids using brightest Pixel Algorithm (A. G. Basden et al, MNRAS, 2011)

Finds the nPxlsth brightest pixel, subtracts that value from frame, sets anything below 0 to 0, and finally takes centroid.

Parameters:
  • img (ndarray) – 2d or greater rank array of imgs to centroid
  • threshold (float) – Fraction of pixels to use for centroid
Returns:

Array of centroid values

Return type:

ndarray

aotools.image_processing.centroiders.centre_of_gravity(img, threshold=0, min_threshold=0, **kwargs)[source]

Centroids an image, or an array of images. Centroids over the last 2 dimensions. Sets all values under “threshold*max_value” to zero before centroiding Origin at 0,0 index of img.

Parameters:
  • img (ndarray) – ([n, ]y, x) 2d or greater rank array of imgs to centroid
  • threshold (float) – Percentage of max value under which pixels set to 0
Returns:

Array of centroid values (2[, n])

Return type:

ndarray

aotools.image_processing.centroiders.correlation_centroid(im, ref, threshold=0.0, padding=1)[source]

Correlation Centroider, currently only works for 3d im shape. Performs a simple thresholded COM on the correlation.

Parameters:
  • im – sub-aperture images (t, y, x)
  • ref – reference image (y, x)
  • threshold – fractional threshold for COM (0=all pixels, 1=brightest pixel)
  • padding – factor to zero-pad arrays in Fourier transforms
Returns:

centroids of im (2, t), given in order x, y

Return type:

ndarray

aotools.image_processing.centroiders.cross_correlate(x, y, padding=1)[source]

2D convolution using FFT, use to generate cross-correlations.

Parameters:
  • x (array) – subap image
  • y (array) – reference image
  • padding (int) – Factor to zero-pad arrays in Fourier transforms
Returns:

cross-correlation of x and y

Return type:

ndarray

aotools.image_processing.centroiders.quadCell(img, **kwargs)[source]

Centroider to be used for 2x2 images.

Parameters:img – 2d or greater rank array, where centroiding performed over last 2 dimensions
Returns:Array of centroid values
Return type:ndarray

Contrast

Functions for calculating the contrast of an image.

aotools.image_processing.contrast.image_contrast(image)[source]

Calculates the ‘Michelson’ contrast.

Uses a method by Michelson (Michelson, A. (1927). Studies in Optics. U. of Chicago Press.), to calculate the contrast ratio of an image. Uses the formula:
(img_max - img_min)/(img_max + img_min)
Parameters:image (ndarray) – Image array
Returns:Contrast value
Return type:float
aotools.image_processing.contrast.rms_contrast(image)[source]

Calculates the RMS contrast - basically the standard deviation of the image

Parameters:image (ndarray) – Image array
Returns:Contrast value
Return type:float

PSF Analysis

Functions for analysing PSFs.

aotools.image_processing.psf.azimuthal_average(data)[source]

Measure the azimuthal average of a 2d array

Parameters:data (ndarray) – A 2-d array of data
Returns:A 1-d vector of the azimuthal average
Return type:ndarray
aotools.image_processing.psf.encircled_energy(data, fraction=0.5, center=None, eeDiameter=True)[source]

Return the encircled energy diameter for a given fraction (default is ee50d). Can also return the encircled energy function. Translated and extended from YAO.

Parameters:
  • data – 2-d array
  • fraction – energy fraction for diameter calculation default = 0.5
  • center – default = center of image
  • eeDiameter – toggle option for return. If False returns two vectors: (x, ee(x)) Default = True
Returns:

Encircled energy diameter or 2 vectors: diameters and encircled energies