Acquisition

Acquisition#

class Acquisition(acqName)#

Bases: handle, matlab.mixin.SetGetExactNames

Acquisition base class for camera acquisition/control.

Provides common camera identity and configuration, connection helpers, and utilities for setting callbacks, starting/stopping acquisition, and post-processing images (e.g., bad-pixel removal). Concrete subclasses (Andor, Basler, Pco, etc.) apply vendor-specific details.

  • Configuration loading: Constructor reads camera via AcquisitionSetting and applies matches by property name.

  • Quantum efficiency: QuantumEfficiency() interpolates provided data (if any) to a requested wavelength.

  • Pixel size in object plane: \(\mathrm{PixelSizeReal} = \dfrac{\mathrm{PixelSize}}{\mathrm{Magnification}}\).

Example:

acq = Basler("MainCam");
acq.connectCamera();
acq.setCameraParameter();    % or model-specific helper
acq.setCallback(@(data,evt) disp(size(data)));
acq.startCamera();
pause(1);
acq.stopCamera();
Constructor Summary
Acquisition(acqName)#

Construct an Acquisition and load camera config.

Parameters:

acqName (string) – Camera name key used in configuration

Loads configuration via AcquisitionSetting and applies matching fields to properties.

Property Summary
AdaptorName string#

MATLAB adaptor name used to connect

BadColumn uint32#

Column indices with bad pixels

BadRow uint32#

Row indices with bad pixels

BitsPerSample int16#

Bits per pixel (e.g., 8/16/32)

CameraModel string#

Camera model identifier

CameraType string#

Camera vendor/type

ConfigFun function_handle#

Function handle to set camera parameters

DeviceID int32#

Device ID if multiple devices share the adaptor

ExposureTime double#

Exposure time [s]

ImageFormat string = "tif"#

Image format (e.g., ‘tif’)

ImageGroupSize int32#

Number of frames before saving

ImagePath {mustBeFolder} = "."#

Save folder

ImagePrefix string = "run"#

Image filename prefix

ImageSize uint32#

[size y, size x] in pixels

IsExternalTriggered logical#

Whether camera is externally triggered

Magnification double#

Optical magnification (unitless)

Name string#

Nickname/label of the acquisition

PixelSize double#

Pixel size [m]

PixelSizeReal#

Pixel size in object plane [m]

QuantumEfficiencyData double = []#

[wavelength (m), quantum efficiency]

SerialNumber int32#

Camera serial number

Transmission double = 1#

Optical transmission (0-1)

VideoInput#

videoinput handle

Method Summary
QuantumEfficiency(lambda)#

Interpolate quantum efficiency at wavelength \(\lambda\) [m].

Parameters:

lambda (double) – Wavelength [m]

Returns:

Quantum efficiency (0-1)

Return type:

double

connectCamera()#

Connect to the camera and create VideoInput.

Raises:

error – When adaptor connection fails

killBadPixel(imageData)#

Replace bad pixel rows/columns by neighbor averages.

Parameters:

imageData (numeric array) – Image data array

Returns:

Corrected image data

Return type:

numeric array

pauseCamera()#

Pause camera recording.

setCallback(callbackFunc)#

Register callback called when enough images are taken.

Parameters:

callbackFunc (function_handle) – Function handle accepting (data, event)

setCameraParameter()#

Set camera parameters via ConfigFun.

Raises:

error – If camera is not connected

setConfigProperty(struct)#

Compare obj properties with fields of struct and set matches.

Requires matlab.mixin.SetGetExactNames to set only exact-name matches.

startCamera()#

Start camera recording.

Raises:

error – If camera is not connected

stopCamera()#

Stop camera and delete VideoInput.