The Microscope class
Microscope is a handle class.
Properties
name |
type |
default |
description |
|---|---|---|---|
|
Objective |
Objective lens |
|
|
CGcamera |
QLSI camera |
|
|
double |
180 |
Objective lens |
|
char |
software used with the microscope (‘PhaseLIVE’, ‘Sid4Bio’) |
|
|
double |
0 |
defocus |
name |
type |
description |
|---|---|---|
|
double |
magnification of the microscope |
|
double |
pixel size of the image |
Constructor
Constructor
Synthax
% possible forms
Microscope(M)
Microscope(OB)
Microscope(OB,brand)
Microscope(OB,f_TL)
Microscope(OB,f_TL,CGcam)
Microscope(OB,f_TL,Cam)
Microscope(OB,f_TL,CGcam,software)
% examples
Microscope(100)
Microscope(OB,'Nikon')
Microscope(OB,180)
Microscope(OB,200,'Silios_mono')
Microscope(OB,165,'Zyla')
Microscope(OB,200,'Silios_mono','PhaseLIVE')
M is the objective magnification, OB is an Objective object, brand is the brand of the microscope, f_TL is the focal length of the tube lens (TL), CGcam is a CGcamera object, Cam is a Camera object and software is the software used to acquire data (must belong to {'Sid4Bio','PHAST','CG','PhaseLIVE','other'}).
Using an Objective object as the first input, instead of just a magnification value, enables the specification of the numerical aperture and the objective brand as well. Also, the brand of the microscope is specified as a second input, which here differs from the brand of the objective lens. This happens, and it is important to specifiy because the actual focal length of the TL \(f_\mathrm{mic}\) differs from one microscope company to another, and the magnifiation written on the objective assumes a specific focal length of the TL \(f_\mathrm{obj}\). Here is a table recalling the conventions
Microscope brand |
TL focal length |
|---|---|
Leica |
200 mm |
Nikon |
200 mm |
Olympus |
180 mm |
Zeiss |
165 mm |
Because of that, if the brand of the microscope is not the brand of the objective, the magnification \(M\) of the microscope may differ from the one indicated on the objective lens \(M_\mathrm{obj}\), according to the relation
PhaseLAB knows these conventions and adapts MI.M accordingly. Here is an example
OB = Objective(100, 1.3, 'Olympus');
MI = Microscope(OB, 'Nikon')
MI =
Microscope with properties:
Objective: [1×1 Objective]
CGcam: [1×1 CGcamera]
f_TL: 200
software: ''
M: -111.1111
pxSize: 5.8500e-08
zo: 0
T0: []
Here the magnification equals -111.1111 instead of -100 because \(M = -100*200/180\).
Microscope methods
camList
Displays the list of predefined camera names.
>> MI.camList
ans =
5x1 cell array
{'Sid4Element-Sona'}
{'Sid4Element' }
{'Silios_mono' }
{'sC8-830' }
{'sC8-944' }
This list gives the possible values of the CGcam input in the Microscope constructor.
Mobj
Returns the magnification of the objective lens.
MI.Mobj()
returns MI.Objective.Mobj, the magnification written on the objective lens.
NA
Returns de numerical aperture of the objective lens.
MI.NA()
returns MI.Objective.NA, the numerical aperture of the objective.
objBrand
Returns the brand of the objective lens.
MI.objBrand()
returns MI.Objective.objBrand, the brand of the objective.
sigmaTheo
returns the theoretical noise standard deviation of the OPD image.
MI.sigmaTheo()
returns the theoretical noise standard deviation expected on the OPD image with this particular microscope, according to ref 1 .
>> OB = Objective(100,1.3,'Olympus');
>> MI = Microscope(OB,200,'Silios_mono');
>> MI.sigmaTheo
ans =
4.9235e-10
- 1
Cross-grating phase microscopy (CGM): In-silico experiment (insilex) algorithm, noise and accuracy, B. Marthy, G. Baffou, Optics Communications 521, 128577 (2022)