→ →
Data Arithmetic module enables to perform arbitrary point-wise operations on a single data field or on the corresponding points of several data fields (currently up to eight). And although it is not its primary function it can be also used as a calculator with immediate expression evaluation if a plain numerical expression is entered. The expression syntax is described in section Expressions.
The expression can contain the following variables representing values from the individual input data fields:
| Variable | Description |
|---|---|
d1, …, d8 |
Data value at the pixel. The value is in base physical units,
e.g. for height of 233 nm, the value of d1
is 2.33e-7.
|
m1, …, m8 | Mask value at the pixel. The mask value is either 0 (for unmasked pixels) or 1 (for masked pixels). The mask variables can be used also if no mask is present; the value is then 0 for all pixels. |
bx1, …, bx8 | Horizontal derivative at the pixel. Again, the value is in physical units. The derivative is calculated as standard symmetrical derivative, except in edge pixels where one-side derivative is taken. |
by1, …, by8 | Vertical derivative at the pixel, definied similarly to the horizontal derivative. |
In addition, the constant π is available
and can be typed either as π or
pi.
All data fields that appear in the expression have to be compatible. This means their dimensions (both pixel and physical) have to be identical. Other data fields, i.e. those not actually entering the expression, are irrelevant. The result is always put into a newly created data field in the current file (which may be different from the files of all operands).
Since the evaluator does not automatically infer the correct physical units of the result the units have to be explicitly specified. This can be done by two means: either by selecting a data field that has the same value units as the result should have, or by choosing option Specify units and typing the units manually.
The following table lists several simple expression examples:
| Expression | Meaning |
|---|---|
-d1 | Value inversion. The result is very similar to Invert Value, except that Invert Value reflects about the mean value while here we simply change all values to negative. |
(d1 - d2)^2 | Squared difference between two data fields. |
d1 + m1*1e-8 | Modification of values under mask. Specifically, the value 10-8 is added to all masked pixels. |
d1*m3 + d2*(1-m3) | Combination of two data fields. Pixels are taken either from data field 1 or 2, depending on the mask on field 3. |
In the calculator mode the expression is immediately evaluated as it is typed and the result is displayed below Expression entry. No special action is necessary to switch between data field expressions and calculator: expressions containing only numeric quantities are immediately evaluated, expressions referring to data fields are used to calculate a new data field. The preview showing the result of an operation with fields is not immediately updated as you type; you can update it either by clicking or just pressing Enter in the expression entry.
→ →
Immerse insets a detail, high-resolution image into a larger image. The image the function was run on forms the large, base image.
The detail can positioned manually on the large image with mouse. Button can then be used to find the exact coordinates in the neighbourhood of the current position that give the maximum correlation between the detail and the large image. Or the best-match position can be searched through the whole image with .
It should be noted the correlation search is insensitive to value scales and offsets, therefore the automated matching is based solely on data features, absolute heights play no role.
Result Sampling controls the size and resolution of the result image:
Detail Leveling selects the transform of the z values of the detail:
→ →
Images that form parts of a larger image can be merged together with Merge. The image the function was run on forms corresponds to the base image, the image selected with Merge with represents the second operand. The side of the base image the second one will be attached to is controlled with Put second operand selector.
If the images match perfectly, they can be simply placed side by side with no adjustments. This behaviour is selected by option None of alignment control Align second operand.
However, usually adjustments are necessary. Option Correlation selects automated alignment by correlation-based search of the best match. The search is performed both in the direction parallel to the attaching side and in the perpendicular direction. If a parallel shift is present, the result is expanded to contain both images fully (with undefined data filled with a background value).
Option Boundary treatment is useful only for the latter case of imperfectly aligned images. It controls the treatment of overlapping areas in the source images:
→ →
Two slightly different images of the same area (for example, before and after some treatment) can be croped to intersecting area (or non-intersecting parts can be removed) with this module.
Intersecting part is determined by correlation of larger image with center area of smaller image. Images resolution (pixels per linear unit) should be equal.
The only parameter now is Select second operand - correlation between it and current image will be calculated and both data fields will be cropped to remove non-intersecting near-border parts.
→ →
Module finds local correlations between details on two different images. As an ideal output, the shift of every pixel on the first image as seen on the second image is returned. This can be used for determining local changes on the surface while imaged twice (shifts can be for example due to some sample deformation or microscope malfunction).
For every pixel on the first operand (actual window), the module takes its neighbourhood and searches for the best correlation in the second operand within defined area. The postion of the correlation maximum is used to set up the value of shift for the mentioned pixel on the first operand.
→ →
Module searches for a given correlation pattern within the actual image. The resulting pattern position is marked as a mask in the data window.