slmsuite.hardware.cameras.mmcore.MMCore

class MMCore(config, path='C:/Program Files/Micro-Manager-2.0', verbose=True, **kwargs)[source]

Bases: Camera

Micro-Manager camera.

cam

Object to talk with the desired camera.

Type

pymmcore.CMMCore

Methods

autoexposure

Sets the exposure of the camera such that the maximum value is at set_fraction of the dynamic range.

autofocus

Uses an FFT contrast metric to find optimal focus when scanning over some variable z.

close

See Camera.close().

flush

Abstract method to cycle the image buffer (if any) such that all new get_image() calls yield fresh frames.

get_exposure

See Camera.get_exposure().

get_image

See Camera.get_image().

get_images

Grab image_count images in succession.

info

Abstract method to load display information.

reset

Abstract method to reset the camera to a default state.

set_exposure

See Camera.set_exposure().

set_woi

See Camera.set_woi().

__init__(config, path='C:/Program Files/Micro-Manager-2.0', verbose=True, **kwargs)[source]

Initialize camera and attributes.

Parameters
  • config (str) – Name of the config file corresponding to the desired camera. This is assumed to be a .cfg file stored in the Micro-Manager path (see below). .cfg may be included or omitted, but the name of the camera will be without it.

  • path (str) – Directory of the Micro-Manager installation. Defaults to the directory of a default Micro-Manager 2.0 installation.

  • verbose (bool) – Whether or not to print extra information.

  • kwargs – See Camera.__init__() for permissible options.

close()[source]

See Camera.close().

get_exposure()[source]

See Camera.get_exposure().

set_exposure(exposure_s)[source]

See Camera.set_exposure().

set_woi(woi=None)[source]

See Camera.set_woi().

get_image(timeout_s=1)[source]

See Camera.get_image().

autoexposure(set_fraction=0.5, tol=0.05, exposure_bounds_s=None, window=None, average_count=5, timeout_s=5, verbose=True)[source]

Sets the exposure of the camera such that the maximum value is at set_fraction of the dynamic range. Useful for mitigating deleterious over- or under- exposure.

Parameters
  • set_fraction (float) – Fraction of camera dynamic range to target image maximum.

  • tol (float) – Fractional tolerance for exposure adjustment.

  • exposure_bounds_s ((float, float) OR None) – Shortest and longest allowable integration in seconds. If None, defaults to exposure_bounds_s. If this attribute was not set (or not availible on a particular camera), then None instead defaults to unbounded.

  • window (array_like or None) – See window. If None, the full camera frame will be used.

  • average_count (int) – Number of frames to average intensity over for noise reduction.

  • timeout_s (float) – Stop attempting to autoexpose after timeout_s seconds.

  • verbose (bool) – Whether to print exposure updates.

Returns

Resulting exposure in seconds.

Return type

float

autofocus(z_get, z_set, z_list=None, plot=False)[source]

Uses an FFT contrast metric to find optimal focus when scanning over some variable z. This z often takes the form of a vertical stage to position a sample precisely at the plane of imaging of a lens or objective. The contrast metric works particularly well when combined with a projected spot array hologram.

Parameters
  • z_get (lambda) – Gets the current position of the focusing stage. Should return a float.

  • z_set (lambda) – Sets the position of the focusing stage to a given float.

  • z_list (array_like or None) – z values to sweep over during search. Defaults (when None) to numpy.linspace(-4,4,16).

  • plot (bool) – Whether to provide illustrative plots.

flush(timeout_s=1)[source]

Abstract method to cycle the image buffer (if any) such that all new get_image() calls yield fresh frames.

Parameters

timeout_s (float) – The time in seconds to wait for frames to catch up with triggers.

get_images(image_count, flush=False)[source]

Grab image_count images in succession. Overwrite this implementation if a camera supports faster batch acquisition.

Parameters
  • image_count (int) – Number of images to grab.

  • flush (bool) – Whether to flush before grabbing.

Returns

Array of shape (image_count, height, width).

Return type

numpy.ndarray

static info(verbose=True)[source]

Abstract method to load display information.

Parameters

verbose (bool) – Whether or not to print display information.

Returns

An empty list.

Return type

list

reset()[source]

Abstract method to reset the camera to a default state.