The Camera class

Camera is a handle class.

The Camera object represents the basis camera.

Properties

Public properties

name

type

default

description

dxSize

double

6.5e-6

dexel size \(p\) [m]

Nx

integer

600

number of columns \(N_x\)

Ny

integer

600

number of columns \(N_y\)

fullWellCapacity

integer

25000

Full-well-capacity \(w\)

model

char

Model of the camera

colorChannels

1, 2, 3

1

Number of color channels

crosstalk12

double

0

Crosstalk from dexel 1 to 2

crosstalk21

double

0

Crosstalk from dexel 2 to 1

Constructor

Constructor

Synthax

% prototypes
obj = Camera();
obj = Camera(camName);
obj = Camera(dxSize,N);
obj = Camera(dxSize, Nx, Ny);

% examples
obj = Camera('Zyla');
obj = Camera(5.5e-6, 2048);
obj = Camera(5.2e-6, 2160, 2048);
Description

obj = CGcamera() creates an empty Camera object.


obj = Camera(camName) creates a Camera object, where camName is a char that defines the camera. The camera names must correspond to the names of the files contained in the folder spec/cameras. For instance, obj = Camera('Zyla');.


obj = Camera(dxSize,N); creates a Camera object obj with a dexel size dxSize and with a N*N sensor size.


obj = Camera(dxSize,Nx,Ny); creates a Camera object obj with a dexel size dxSize and with a Nx*Ny sensor size.

Camera spec files

The folder spec/cameras contains .json files associated to each predefined camera, namely:

  • FirstLight.json

    A camera from the FirstLight company.

  • Pixelink.json

    The M20 Pixelink camera.

  • Retiga.json

    A Retiga camera (the one used in the Sid4Bio cameras from Phasics)

  • Silios.json

    The 2-color camera we own from SILIOS.

  • Sona.json

    The Sona camera from Andor.

  • Zyla.json

    The Zyla 5.5 from Andor (the one used in the sC8 cameras from Phasics)

Each spec file contains all the characteristics of the camera. Here is for instance a copy of the Zyla.json file:

Zyla.json
{"class":"Camera",
"model": "Zyla",
"dxSize": 6.5e-6,
"Nx": 2560,
"Ny": 2160,
"fullWellCapacity": 25000,
"offset":100,
"colorChannels":1
}

All these parameters are respectively the class (Camera), the model, the dexel size, the number of columns, the number of rows, the full well capacity, the constructor offset (in counts) and the number of color channels.

If other cameras are being used, new custom files can be made, following this pattern. Any new file can be saved in the spec/cameras folder, or in any other folder known by Matlab. However, in order to simply keep track of the updated versions of PhaseLAB via Github, I suggest to store any custom-made file to a separate folder, out of the PhaseLAB package, and include this directory in the Matlab paths. Also, feel free to contact me to ask for any file addition/modification in the public Github version of PhaseLAB that would suit your studies.

Camera methods

crop
set the sensor dimension.

Synthax

% prototypes
obj.crop(N);
obj.crop(Nx, Ny);

% examples
obj.crop(200);
obj.crop(400, 300);

Description

obj.crop(N) sets the sensor dimension to a square of N*N pixels.

obj.crop(Nn, Ny) sets the sensor dimension to a rectangular area with Nx columns and Ny rows.