# Argos2D

Digital Image Correlation Software
User Documentation
Version 1.2
Thank you for choosing Argos2D. This document will guide you through the installation requirements, the user interface, and the main features of the software. For support, please visit argos-correlation.com or contact us at contact@argos-correlation.com.

## 1. System Requirements

### 1.1 Operating System

Argos2D is a Windows-only application.

Requirement | Minimum
--- | ---
Operating system | Windows 10 (64-bit) or later
Architecture | x86-64 (64-bit only)
Installation privileges | Administrator for the installer. None for the portable edition, which is simply unzipped and run.

### 1.2 GPU Compatibility

A compatible NVIDIA GPU is required.

GPU Architecture | Compute Capability | Example GPUs
--- | --- | ---
Turing | sm_75 | GeForce RTX 2060–2080 Ti, GTX 1660, Quadro RTX, Tesla T4
Ampere | sm_86 | GeForce RTX 3060–3090, RTX A5000/A6000, A100
Ada Lovelace | sm_89 | GeForce RTX 4060–4090, RTX L40/L40S
Blackwell | sm_120 | GeForce RTX 5070–5090

Note: Older architectures (Pascal and below, e.g. GTX 1080, GTX 970) are not supported. The minimum required GPU generation is Turing (2018).

### 1.3 NVIDIA Driver & CUDA

Argos2D ships with the CUDA runtime libraries (cudart, cuFFT), so you do not need to install the CUDA Toolkit yourself. However, your NVIDIA driver must be recent enough to support CUDA 12.0 or later.

Component | Requirement
--- | ---
NVIDIA display driver | Version 525.0 or later (for CUDA 12.0+ support)
CUDA runtime | Supplied with the application, no separate installation required

Tip: To check your current driver version, right-click on your desktop → NVIDIA Control Panel → Help → System Information. You can also run `nvidia-smi` in a command prompt.

### 1.4 Runtime Dependencies

Nothing has to be installed on your system. Every runtime Argos2D needs is supplied next to the executable:

Dependency | Details
--- | ---
Microsoft Visual C++ Redistributable | Supplied with the application. Argos2D no longer installs it system-wide, so no reboot is ever requested and the portable edition works without administrator rights.
Universal C Runtime (UCRT) | Part of Windows 10 and later, so already present on every supported system.

### 1.5 Software Editions

Argos2D comes in two editions. The free edition is downloadable without a license key and is not time-limited: you download it, install it, and correlate. The full edition requires a license key and adds two features.

Feature | Free edition | Full edition
--- | --- | ---
Correlation, displacement fields, strain fields and criteria | Yes | Yes
All correlation parameters, NLC filter, ROI, mask, GPU selection | Yes | Yes
Export of every computed field (TIFF, full-image or grid) | Yes | Yes
Fracture mode — Heaviside-enriched correlation, crack line detection, crack opening and geometry maps (chapters 7.7, 7.9, 12) | — | Yes
Mosaic mode — tile stitching, global position optimisation, non-rigid refinement, per-tile DIC (chapter 6) | — | Yes

Throughout this document, sections that describe a feature absent from the free edition carry the badge Full edition next to their title.

The free edition does not merely hide these features — it does not contain them. They are removed at compile time, not disabled by a flag, so the free installer is a different program rather than a locked version of the same one. This is why the two editions are two separate downloads, and why entering a license key in the free edition triggers a download rather than an instant unlock.
Upgrading: open Help → About Argos2D and click Activate full edition. Paste your license key: Argos2D validates it online, then downloads and installs the full edition over the current one and restarts. Your license key, your project folders and your settings are kept. You never leave the application, and there is nothing to uninstall first.
Update notifications: the free edition does not check for new versions, because downloading an update requires a license key. Its version number is shown in the window title and in Help → About Argos2D; new releases are announced on argos-correlation.com.

## 2. Getting Started

### 2.1 The Demo Folder

The installer places a folder named Argos2D Demo on your desktop, containing two images:

File | Role
--- | ---
`PImage000.bmp` | Reference image
`PImage001.bmp` | Deformed image

These two images are a synthetic test case with a sliding (mode II) crack.

You can use this folder directly as a project folder (see Section 4).

Tip: If you keep a clean desktop, the demo folder is also reachable from the Start Menu, under the Argos2D group. If you cleared the corresponding checkbox during installation, the folder was not created. Run the installer again and tick Place the Argos2D Demo folder on the desktop.

### 2.2 Your First Correlation

Using the demo folder, a complete run takes about a minute:

1. Launch Argos2D. In the PROJECT section, click Select project folder and choose the Argos2D Demo folder on your desktop. Results will be written there.
2. In INPUT IMAGES, with the Reference panel selected, click + and pick `PImage000.bmp`, or simply drag the file onto the panel.
3. Switch to the Deformed panel, click + and pick `PImage001.bmp`.
4. On the reference image, click and drag to draw a Region of Interest covering the speckle area. The coordinates appear in the ROI (px) fields of the PARAMETERS section.
5. Set Computation mode to Translations + 1st order gradients + Heaviside enrichment.
6. Click Compute displacements.

When the computation finishes, the Displacements, Strains and Fracture tabs appear. Open the Fracture tab and select Opening intensity in the Parameter dropdown: the crack that was invisible in the input images is drawn as a continuous line across the field.

### 2.3 The Help Menu

A Help ▾ button sits at the right-hand end of the tab row, level with the Input Images tab. It holds two entries:

Entry | Action
--- | ---
Documentation | Opens this document in your default browser. It is installed with the application and works offline.
About Argos2D… | Shows the exact version you are running, your licence status and the support address. Quote the version shown here whenever you contact support.

## 3. General Interface

### 3.1 Overview

Argos2D main interface, showing the Input Images tab with reference and deformed images side by side.

The Argos2D interface is organized into two main areas:

- Left sidebar: contains all parameters and controls, organized in collapsible groups:
  - PROJECT: project folder selection and loading
  - INPUT IMAGES: reference/deformed image management, mosaic mode toggle, mask settings
  - PARAMETERS: DIC correlation parameters (window size, step, tolerances, etc.)
- Main area (tabs): displays results in dedicated tabs that appear as computations are performed:
  - Input Images: side-by-side view of the reference and deformed images with histograms
  - Displacements: horizontal (ux) and vertical (uy) displacement fields
  - Strains: strain tensor components (εxx, εyy, εxy, principal strains, rotation)
  - Fracture: crack opening displacements and fracture parameters (if enrichment is enabled)
  At the right-hand end of the tab row sits the Help ▾ menu (see Section 2.3).

Note: The Displacements, Strains and Fracture tabs are hidden by default. They appear automatically once the corresponding computation has been performed.

## 4. Project Section

### 4.1 Selecting a Project Folder

Before loading any images or running computations, you must select a project folder. This folder is where Argos2D will store all computation results and the project configuration file.

There are two ways to set the project folder:

- Type a path directly in the text field and press `Enter`. If the folder does not exist, it will be created automatically.
- Click Select project folder to open a folder selection dialog.

If the selected folder already contains a `parameters.json` file (i.e. an existing project), you will be prompted with three options:

1. Load project: loads all settings and image references from the existing project
2. Overwrite: deletes the existing project data (parameters and all result folders) and starts fresh
3. Cancel: reverts to the previous project folder

Once a project folder is confirmed, the INPUT IMAGES and PARAMETERS sections become enabled.

### 4.2 Loading an Existing Project

To reload a previously saved project, click Load project and select the `parameters.json` file from the project folder. This will restore:

- All image paths (reference, deformed, mask)
- The Region of Interest (ROI)
- All correlation parameters (window size, step, DOF, interpolation, tolerances, etc.)
- Mosaic configuration (if applicable)
- Strain and fracture computation settings
- Display ranges for previously computed results

Note: Image paths are stored as relative paths in the project file. As long as the images remain in the same location relative to the `parameters.json` file, the project can be moved to another directory or computer.

### 4.3 Project Folder Contents

After running computations, the project folder will contain:

File / Folder | Description
--- | ---
`parameters.json` | Project configuration (parameters, image paths, ROI, display ranges). Automatically saved after each modification.
`Displacements/` | Displacement maps: `*_ux.tif` (horizontal) and `*_uy.tif` (vertical) for each deformed image.
`Strains/` | Strain maps: `*_exx.tif`, `*_eyy.tif`, `*_exy.tif`, `*_e1.tif`, `*_e2.tif`, `*_rotation.tif`.
`Fracture/` | Fracture maps (when enrichment is enabled): crack openings, intensity, crack position, crystallographic decomposition.
`mosaic_*.tiff` | In mosaic mode only: the assembled reference (`mosaic_reference.tiff`) and one file per deformed state (`mosaic_deformed_001.tiff`, `mosaic_deformed_002.tiff`, …). See Section 6.8.

All result files are saved in 32-bit TIFF format, which preserves full floating-point precision for post-processing in external tools.

## 5. Input Images (Single Image Mode)

The INPUT IMAGES section in the sidebar manages the images used for correlation. At the top of this section, a Mosaic toggle allows you to switch between single image mode and mosaic mode. This chapter covers the single image mode (Mosaic toggle off).

Two sub-panels can be accessed via a segmented toggle: Reference and Deformed. Both use the same commands, listed in the button table below.

### 5.1 Supported Image Formats

Argos2D reads the following image formats:

Format | Extensions
--- | ---
PNG | `.png`
BMP | `.bmp`
TIFF | `.tif`, `.tiff`

JPEG is not supported. It is a lossy format: the compression destroys the fine detail the speckle pattern is made of, and adds block artefacts that corrupt the measurement. Configure your camera to write TIFF, PNG or BMP.
Note: All images are automatically converted to grayscale upon loading. Color images are converted to 8-bit or 16-bit grayscale depending on the original bit depth. TIFF images with 16-bit depth are preserved as 16-bit grayscale for maximum precision.

### 5.2 Reference Image

The reference image is the undeformed state of the specimen. To load it:

- Drag and drop an image file onto the reference panel area, or
- Click + to open a file selection dialog.

Once loaded, the file name appears in the text field. The reference image is displayed on the left side of the Input Images tab.

To remove the current reference image, click −.

### 5.3 Deformed Images

Deformed images represent the specimen at various loading stages. You can load one or several at once:

- Drag and drop one or more image files onto the deformed panel area, or
- Click + to open a multi-file selection dialog.

Loaded images appear in a list, and the count is shown below it.

#### Panel commands

Both panels use the same buttons. The ordering commands apply to the deformed list only:

Button | Action | Reference | Deformed
--- | --- | --- | ---
+ | Add an image (multi-selection on the deformed list) | yes | yes
− | Remove the reference / the selected image(s) | yes | yes
↑ | Move the selected image up in the list | no | yes
↓ | Move the selected image down in the list | no | yes
Clear all | Remove every image from the list at once | no | yes

Tip: You can also reorder images by dragging them within the list. The order is the order in which the loading steps are computed and displayed.

### 5.4 Navigating Between Deformed Images

When multiple deformed images are loaded, the right side of the Input Images tab displays the currently selected deformed image along with its label (e.g. "Deformed 3 / 10").

You can navigate between images using:

- The slider below the image label
- The < and > navigation buttons on each side of the slider
- Clicking directly on an image name in the sidebar list

### 5.5 Display Controls

Below each image viewer (reference and deformed), a row of buttons controls the display:

Button | Function
--- | ---
Fit | Fit to window: scales the image so it fits entirely within the view area. This is the default mode when an image is first loaded.
1:1 | Scale 1:1: displays the image at native resolution (one image pixel = one screen pixel). Useful for inspecting fine details.
Sync | Synchronize views: when enabled (default), any zoom or pan action on one image is replicated on the other. The button icon shows a link symbol. Disabling it allows independent navigation of each image.

You can also zoom with `Ctrl` + mouse wheel and pan by holding `Ctrl` and dragging the image.

Pixel information: When hovering over an image, the cursor becomes a yellow crosshair. The coordinates and grayscale value of the pixel under its centre are displayed below the histogram (e.g. "Pixel : (1234, 567) = 142").

### 5.6 Histogram & Contrast Adjustment

Below each image viewer, an interactive histogram displays the grayscale value distribution of the image. It allows you to adjust the display contrast without modifying the actual image data.

#### Adjusting the display range

Drag the left and right edges of the histogram selection to narrow the displayed grayscale range. Pixels below the minimum appear black, and pixels above the maximum appear white. This is useful for enhancing contrast in images with a limited dynamic range.

The current Min and Max values are shown in the header above the histogram.

#### Histogram controls

Control | Function
--- | ---
Log toggle | Switches the histogram vertical axis to logarithmic scale. Useful when a few pixel values dominate the distribution (e.g. background), making it easier to see the distribution of less frequent values.
Crop | Zooms the histogram into the currently selected range. This recomputes the histogram for better detail within the selected range. Only enabled when the selection differs from the full range.
Reset | Resets the histogram to the full grayscale range and clears any zoom, restoring the original display.

Tip: The same histogram and controls are available for both the reference and the deformed image viewers independently.

### 5.7 Mask

A mask allows you to exclude specific regions from the DIC computation. This is useful for ignoring areas such as grips, specimen edges, holes, or any zone that should not be correlated.

#### Loading a mask

1. Check the "Use a mask" checkbox at the bottom of the INPUT IMAGES section.
2. Click + to select a mask image.

The mask must be a binary image with the same dimensions as the reference and deformed images:

- White (pixel value > 0): computed zone (included in DIC)
- Black (pixel value = 0): excluded zone (ignored by DIC)

#### Mask overlay

When a mask is loaded and enabled, a MSK button appears in the reference image toolbar. This toggle controls a semi-transparent red overlay on the reference image, highlighting the excluded (black) regions of the mask. The overlay is purely visual and does not affect the computation.

To remove the mask, click − next to the mask file path, or simply uncheck the "Use a mask" checkbox (which preserves the loaded mask image for later re-activation).

Important: The mask is applied to displacement, strain, and fracture computations. Masked points will appear as NaN (not a number) in the output TIFF files.

## 6. Mosaic ModeFull edition

Mosaic mode is designed for large specimens that require multiple overlapping images (tiles) to cover the full field of view. This is common in LSCM (Laser Scanning Confocal Microscopy), SEM, or any setup where the sample is larger than the camera field.

Input Images sidebar in Mosaic mode.

The panel is read from top to bottom, and the sections below follow that same order:

Section | Contains | Covered in
--- | --- | ---
TILES | State tabs, tile lists, tile crop | 6.2 – 6.4
ASSEMBLY | Stitch & Correlate / Per-Tile DIC | 6.5, 6.9
GRID GEOMETRY | Scan order, grid, overlap, missing tiles | 6.5
OPTIONS | Non-rigid refinement, mask | 6.6, 6.7

### 6.1 Activating Mosaic Mode

Toggle the Mosaic switch at the top of the INPUT IMAGES section. If images or results are already loaded, a confirmation dialog will appear:

Warning: Switching between single image mode and mosaic mode resets all current data (images, parameters and computation results). The project folder is preserved.

### 6.2 Importing Tiles

In mosaic mode, the segmented toggle is replaced by tabs: Reference, Deformed 1, and an + Add state button.

#### Reference tiles

Select the Reference tab, then:

- Click + to open a multi-file selection dialog, or
- Drag and drop files into the list area.

Tiles are automatically sorted alphabetically by filename upon import. Duplicate filenames are rejected. The tile count is displayed below the list.

#### Deformed tiles

Select a Deformed tab, then import tiles the same way. Each deformed state must have the same number of tiles as the reference.

All tiles must share the same dimensions. Tiles of differing sizes are rejected at import.

#### Managing tiles

The tile list uses the same commands as the deformed image list in single image mode (Section 5.3):

Button | Action
--- | ---
+ | Add tiles
− | Remove selected tile(s)
↑ | Move selected tile up
↓ | Move selected tile down
Clear all | Remove all tiles from the current tab

### 6.3 Deformed States

Each deformed state represents one loading step with its own set of tiles. You can add as many states as needed:

- Click + Add state to create a new empty deformed state.
- Select a deformed state tab and click Delete state, below its tile list, to remove it (at least one deformed state must remain).

### 6.4 Crop Tiles

The Crop tiles... button, immediately below the tile lists, opens a dialog that lets you define a rectangular crop region. This crop is applied uniformly to all tiles (reference and deformed).

This is particularly useful for removing instrument headers or information banners that appear at the edges of images (e.g. metadata banners at the bottom of LSCM images).

The crop dialog provides:

- An interactive image viewer where you can visually select the crop region
- Spinboxes for precise adjustment (X, Y, Width, Height)
- A Reset button to remove the crop and use full tiles

While no tiles are loaded the button is disabled and the label next to it reads Load tiles first. Once a crop is defined, the label shows the region kept.

### 6.5 Stitch & Correlate Mode

This is the default mode, selected in the ASSEMBLY section. The tiles are first assembled (stitched) into a full mosaic image, and DIC correlation is then performed on the assembled result.

#### Grid geometry

Under GRID GEOMETRY, describe how the tiles were acquired:

Parameter | Description
--- | ---
Scan order | The order in which tiles were acquired: Snake: alternating left-right then right-left rows Row by row: left to right, row after row (default) Column by column: top to bottom, column after column If the algorithm detects a different scan order during stitching, it will notify you and update the parameter automatically.
Grid | Number of rows and columns in the tile grid (1–50 each).
Overlap | Horizontal and vertical overlap between adjacent tiles, as a percentage of the tile size (0–50 %). Default: 20 %.

An approximate overlap is enough. The value you enter only tells the algorithm where to look for the neighbouring tile; the actual offset is then measured by phase correlation.

#### Missing tiles

If some tiles are missing from the grid (e.g. the specimen does not cover the entire field), check Missing tile(s) and specify their grid positions in the Positions field.

Positions are 0-indexed (the first tile in the grid is position 0). Supported syntax:

Input | Result
--- | ---
`1` | Position 1 (second tile)
`1, 3, 5` | Positions 1, 3, and 5
`1-5` | Positions 1 through 5
`1-3, 7, 10-12` | Positions 1, 2, 3, 7, 10, 11, 12

Separators `,` and `;` are both accepted. The number of specified positions must match the number of missing tiles (expected grid size minus actual tile count).

Tip: If no positions are specified, missing tiles are assumed to be at the end of the grid.

### 6.6 Non-Rigid Refinement

Under OPTIONS, the Non-rigid refinement checkbox adds a second stage to the assembly. It is off by default.

Standard stitching places each tile with a translation alone, which cannot correct two common effects:

- Stage rotation and shear: the specimen is not perfectly aligned with the translation axes, so each tile is slightly rotated or sheared with respect to its neighbours.
- Optical distortion: the lens does not map the field linearly, so the same feature is imaged differently at the centre of a tile and at its edge.

Enable the refinement to correct them. Argos2D then measures, inside the overlap regions, one affine transform per tile plus one distortion field shared by the whole mosaic.

How to tell whether you need it: run the correlation without refinement and look at the displacement fields. If the tile boundaries show up as seam lines, steps in ux or uy that follow the tile edges rather than the specimen, enable the refinement and re-align.

The refinement adds time to the assembly. If it cannot measure a reliable correction (too little overlap, or too little texture inside the overlaps), it reports a warning and falls back to translations only.

### 6.7 Mask in Mosaic Mode

The Use a mask checkbox is the second entry of the OPTIONS section, directly below the refinement. Masks are supported in Stitch & Correlate mode only.

The mask must be loaded after the mosaic has been assembled, and its dimensions must match the final stitched mosaic size, not the individual tile size. Everything else works as in Section 5.7.

### 6.8 Aligning the Mosaic

Click Align mosaic, at the bottom of the panel, to run the stitching algorithm. This assembles the reference and every deformed state into full mosaic images using phase correlation (FFT-based).

Once aligned, you can select a ROI and configure correlation parameters as in single image mode, then launch the computation.

Note: If you launch a computation without having aligned the mosaic first, stitching will run automatically before the correlation starts. Similarly, if you have changed the grid parameters (rows, columns, overlap, scan order, crop or refinement) since the last alignment, the mosaic will be re-stitched automatically.

#### The assembled mosaics are saved automatically

Assembled mosaics are written to the project folder as TIFF files, with no option to set:

- `mosaic_reference.tiff`: the stitched reference image
- `mosaic_deformed_001.tiff`, `mosaic_deformed_002.tiff` and so on, one per deformed state

Reloading the project reuses these files instead of re-stitching, which saves considerable time on large tile sets.

### 6.9 Per-Tile DIC Mode

Select the Per-Tile DIC radio button in the ASSEMBLY section. In this mode, DIC correlation is performed independently on each tile pair (reference tile vs. corresponding deformed tile), without stitching. The grid geometry and options sections disappear, since none of them applies.

Key characteristics:

- No ROI selection: the entire tile area is used for each pair.
- No stitching step: tiles are correlated individually.
- No mask support: masking is not available in this mode.
- Results are per-tile: displacement and strain maps are saved separately for each tile. If you need a full-field map, you will need to reassemble the results externally.

When to use Per-Tile DIC: mosaics whose tiles do not overlap enough to be stitched reliably, or acquisitions where each tile is a measurement in its own right.

### 6.10 Alternative: Pre-stitched Images

If you prefer to stitch your tiles using external software (e.g. Fiji/ImageJ, MATLAB, or any other tool), you can import the resulting full-field images directly into Argos2D in single image mode (Mosaic toggle off). Simply load the pre-stitched reference and deformed images as described in Section 5.

## 7. Correlation Parameters

The PARAMETERS section in the sidebar controls all DIC computation settings. Argos2D uses an Inverse Compositional Gauss-Newton (IC-GN) local DIC algorithm.

Parameters sidebar with Heaviside enrichment mode selected.

### 7.1 Region of Interest (ROI)

Before running a computation, you must define a Region of Interest on the reference image. The ROI defines the area over which the DIC correlation will be performed.

To select a ROI:

- Click and drag on the reference image in the Input Images tab to draw a rectangular selection, or
- Enter the coordinates directly in the ROI spinboxes (X, Y, Width, Height) in the Parameters sidebar.

The ROI is displayed as a rectangle overlay on the reference image and can be adjusted at any time before launching the computation.

### 7.2 Save Full Image (with NaN)

By default, Argos2D saves only the computed ROI region in the output TIFF files. When the "Save full image (with NaN)" checkbox is enabled, the output files have the same dimensions as the original image: the computed ROI is placed at its correct coordinates, and all non-computed zones are filled with NaN (Not a Number).

Tip: This option is useful when you need to overlay result maps (displacements, strains) on top of the original intensity images, for example in a post-processing tool. The pixel coordinates will match exactly between the result and the original image.

### 7.3 Window Size

The correlation window (or subset) is the local region used to match patterns between the reference and deformed images. The window size is defined in pixels along X and Y (must be odd numbers). Default: 61 × 61.

A larger window captures more texture and is more robust to noise, but averages out local variations and increases computation time. A smaller window provides finer spatial resolution and is faster to compute, but is more sensitive to noise.

Tip: Heaviside-enriched DIC (H-DIC) is by nature sensitive to high-frequency noise in the images. If your results appear noisy, do not hesitate to increase the window size. The Heaviside enrichment will still capture discontinuities correctly even with larger windows.

### 7.4 Spacing

The spacing (or step) defines the distance in pixels between two consecutive correlation points along X and Y. Default: 4 × 4.

A smaller spacing yields a denser displacement field (more measurement points), while a larger spacing reduces computation time and output size.

Tip: For both the window size and the spacing, typing a value in the X field copies it to Y. To use different values, set X first, then Y.

### 7.5 Search Area

The search area bounds the displacement, in pixels, that the pixel-accuracy initialization will look for. It is entered as four independent values, one per direction:

- Up: towards the top of the image
- Down: towards the bottom of the image
- Left: towards the left edge
- Right: towards the right edge

Default: 6 px in each direction, i.e. a symmetric search. Each value is the distance travelled in that direction only: setting Right to 40 and Left to 0 searches 40 px to the right and nothing to the left.

If the actual displacement exceeds the bound in its direction, the initialization cannot find the correct match and the sub-pixel refinement will start from a wrong estimate. Increase the corresponding value.

Tip: When the specimen moves predominantly one way, give that direction the room it needs and leave the opposite one small. You cover a larger displacement at a lower cost.

### 7.6 Pixel Search (FFT)

Before sub-pixel refinement, every correlation point is initialized with an integer-pixel displacement estimate, computed by FFT-based normalized cross-correlation (ZNCC). There is nothing to set. A uniform change in brightness or contrast between the two images does not affect the result, and a large search area costs almost nothing.

### 7.7 Computation Mode

The computation mode determines the degrees of freedom (DOF) of the displacement model used for sub-pixel refinement. Four modes are available:

#### Translations (2 DOF)

Pure rigid body translation. The displacement is constant within the subset:

φ(x) = x + u

#### Translations + 1st order gradients (6 DOF, default)

Adds an affine deformation gradient to the translations, allowing the subset to capture stretching, compression, shearing and rotation:

φ(x) = x + u + ∇u · (x − x0)

where ∇u = [∂u/∂x, ∂u/∂y; ∂v/∂x, ∂v/∂y] is the deformation gradient tensor.

#### Translations + Heaviside enrichment (4+2 DOF)Full edition

Adds a displacement discontinuity (jump) to the translations, modeled by a Heaviside step function. Captures crack openings without first-order gradients:

φ(x) = x + u + u' · H(x − x0)

where u' = (u', v') is the jump vector, H is the Heaviside step function, x0 encodes the crack position and orientation (θ).

#### Translations + 1st order gradients + Heaviside enrichment (8+2 DOF)Full edition

The most complete mode: combines affine deformation, displacement jump, and Heaviside function:

φ(x) = x + u + ∇u · (x − x0) + u' · H(x − x0)
Window size and DOF: more degrees of freedom means more computation time per point, and more pixels needed in the window to constrain them. When using an enriched mode, increase the window size accordingly.

### 7.8 Max Jump Init

This parameter is only visible in Heaviside-enriched modes. It sets the maximum crack opening amplitude (in pixels) for the cold start initialization of the jump parameters. Default: 0 px (automatic).

This is not required for most cases. Increasing it (typically 5+ px) may improve convergence for very large crack openings, at the cost of additional computation time.

### 7.9 Twinning ModeFull edition

The Enable twinning mode checkbox is only available in Heaviside-enriched modes. When enabled, it adds an 11th degree of freedom: the transition sharpness parameter (k).

The standard Heaviside function assumes an infinitely sharp discontinuity. Twinning mode optimizes the width of the transition instead, which better captures the finite thickness of mechanical twins and closely spaced slip bands.

### 7.10 Sub-pixel Interpolation

The sub-pixel refinement step requires interpolating the deformed image at non-integer positions. Three schemes are available:

Method | Precision | Speed | Notes
--- | --- | --- | ---
Bilinear | Low | Fast | Suitable for quick tests. Not recommended for final results.
Bicubic | Good | Medium | Recommended for most applications. Good balance of precision and speed.
Cubic B-Spline | High | Slower | Highest precision. Use with caution in Heaviside-enriched modes, as the smoothing kernel can slightly blur sharp discontinuities.

### 7.11 Convergence Settings

#### Sub-pixel tolerance (ε)

The convergence criterion for the IC-GN iterative solver. The algorithm stops when the norm of the parameter update falls below this threshold. Default: 1e-4. Range: 1e-9 to 1e-1.

Lower values yield more precise results but may require more iterations.

#### Max sub-pixel iterations

Maximum number of Gauss-Newton iterations per correlation point. Default: 30. Range: 1–200.

If the algorithm does not converge within this limit, the point is marked as non-converged. In practice, most points converge well within 30 iterations.

### 7.12 NLC Filter

The NLC filter checkbox enables Normalized Local Contrast, a preprocessing step applied to both the reference and deformed images before correlation. It is particularly useful when cracks open during deformation.

#### The problem

When a crack opens, the newly exposed surface creates very dark (or very bright) pixels in the deformed image that do not exist in the reference. Because these extreme pixel values carry heavy weight in the correlation criterion, they can bias the displacement estimate and degrade convergence.

#### How it works

The NLC filter normalizes the local intensity by computing a z-score within a local neighborhood, then rescaling to the image's global statistics:

NLC(I) = I − μlocal σlocal × σglobal + μglobal

where μlocal and σlocal are the local mean and standard deviation within a neighborhood, and μglobal and σglobal are the global image statistics.

Extreme local values are mapped back to the average gray level, and the output is clipped to the [0, 255] range.

Tip: The NLC filter is also available as a plugin in ImageJ ("Normalize Local Contrast"). Use it when crack opening or surface damage introduces extreme pixel values that are not present in the reference image.
Effect of the NLC filter on displacement measurement across a crack. Top: reference and deformed images showing crack opening with dark pixels. Middle: without NLC, the displacement profile across the crack shows oscillations and artifacts caused by the extreme pixel values. Bottom: with NLC, the displacement profile shows a clean, sharp step at the crack location. Data courtesy of Damien Texier.

## 8. GPU Selection

At the bottom of the sidebar, the GPU section displays the available NVIDIA GPU(s) detected on your system. A dropdown menu lets you select which device to use for computations. Each entry shows the GPU name and its total video memory.

If your system has multiple GPUs, an additional "All GPUs" option appears at the top of the list, allowing Argos2D to distribute the workload across all available devices.

Note: Multi-GPU support is experimental. By default, the first single GPU is selected. If no compatible GPU is detected, the dropdown will show "No GPU detected" and computations will not be available.

## 9. Running a Computation

Once your images are loaded, the ROI is defined, and the parameters are set, click Compute displacements to start the DIC computation. A progress bar indicates the current phase and overall progress.

The computation runs through several successive phases:

1. Mosaic assembly (mosaic mode only): if the mosaic has not been assembled yet or if the grid parameters have changed, stitching is performed automatically before correlation.
2. Global alignment via FFT: a fast FFT-based cross-correlation estimates the global rigid body displacement between the reference and deformed images.
3. Pixel-accuracy initialization: each correlation point is initialized with an integer-pixel displacement estimate via FFT cross-correlation (see Section 7.6).
4. Sub-pixel refinement: the IC-GN iterative solver refines each point to sub-pixel accuracy using the selected computation mode.

Click Stop at any time to cancel the computation. The process will stop at the end of the current batch of points. There is no pause functionality: stopping a computation requires restarting it from the beginning.

Note: When multiple deformed images are loaded, the computation processes each image sequentially. Results are saved to the project folder as each image completes.

## 10. Displacements Tab

After a successful computation, the Displacements tab appears and displays the displacement fields side by side:

- Ux (horizontal): displacement along the X axis
- Uy (vertical): displacement along the Y axis

Displacements tab: the Ux and Uy fields with their histograms. Data courtesy of Damien Texier.

### Navigation and display

The same view controls as the Input Images tab are available: Fit, 1:1, Sync. Zoom with `Ctrl` + mouse wheel and pan with `Ctrl` + click and drag.

When multiple deformed images have been computed, use the slider and navigation buttons at the top to browse through results.

### Data markers and line profiles

The leftmost button of the toolbar, showing a label icon, arms two inspection tools at once. They share the left mouse button and are told apart by the gesture: a click places a marker, a drag draws a profile.

Gesture | Result
--- | ---
Click on the field | Places a data marker: the grid coordinates and the field value at that point. Markers stay where they are put, so several can be compared side by side.
Click and drag | Draws a line profile: a floating plot of the field sampled along the segment, from the start point to the end point.
Right-click a marker | Remove this marker or Remove all.
Right-click a profile or its plot | Remove this profile.
Click the button again | Disarms both tools and clears everything that was placed.

The plot appears next to the start of the segment. Its horizontal axis is graduated in grid points, the same unit the data markers use for their coordinates.

Gaps in the curve are real. Where a point was masked, fell outside the grid, or failed to converge, the curve is interrupted rather than bridged. A break means missing data, not a zero.

### Histogram and contrast

Each displacement field has its own histogram with the same controls as the Input Images tab (Log, Crop, Reset). Two additional buttons are available:

Button | Function
--- | ---
Auto | Automatically adjusts the contrast range to the computed min/max values of the current displacement field.
Apply to all | Applies the current contrast range to all deformed states, so that every step uses the same color scale for easy comparison.

## 11. Strains Tab

The Strains tab computes and displays strain fields derived from the displacement results. All calculations are performed under the small strain hypothesis using finite differences.

Strains tab: the Von Mises criterion, with the kernel and criteria settings in the sidebar. Data courtesy of Damien Texier.

When the Strains tab is active, the left sidebar switches to the GRADIENT COMPUTATION and STRAIN CRITERIA sections.

### 11.1 Derivative & Smoothing Kernels

Strain fields are computed by applying a separable convolution to the displacement fields: a derivative kernel along the differentiation direction, combined with a smoothing kernel along the perpendicular direction. Both are chosen in the GRADIENT COMPUTATION section of the sidebar.

#### Derivative kernels

Centered finite difference kernels used to compute spatial gradients. They must be antisymmetric (coefficients satisfy c[i] = −c[n−1−i]) and have an odd size. Built-in options:

Kernel | Coefficients | Support
--- | --- | ---
Order 2 (default) | [−1/2, 0, 1/2] | 3 points
Order 4 | [1/12, −2/3, 0, 2/3, −1/12] | 5 points
Order 6 | [−1/60, 3/20, −3/4, 0, 3/4, −3/20, 1/60] | 7 points

The order is the order of accuracy, not a quality ranking. A higher order is more accurate on a smooth field, but it reads over a wider support, so it spreads noise and blurs genuine discontinuities. On a cracked or localized field, Order 2 is often the better reading.

#### Smoothing kernels

Applied perpendicularly to the derivative direction to reduce noise. They must be symmetric (c[i] = c[n−1−i]) and have an odd size. Built-in options:

Kernel | Coefficients
--- | ---
None (default) | No smoothing applied
Sobel | [1, 2, 1]
Prewitt | [1, 1, 1]

Smoothing coefficients are normalized for you. The kernel is divided by the sum of its coefficients before use, so a custom kernel does not need to sum to 1.

#### Custom kernels

Click + New to define your own. Custom derivative kernels must be antisymmetric and custom smoothing kernels must be symmetric. Fractional input is supported (e.g. `1/12`). The preview below the list displays the resulting 2D kernel and validates the symmetry as you type.

Each custom kernel carries two commands, which appear on its row: a pencil to edit it and a cross to delete it. Built-in kernels cannot be edited or deleted.

### 11.2 Computed Fields

The following fields are computed from the displacement gradients. Use the Components dropdown at the top left of the view to select which field to display.

#### Strain tensor components

εxx = ∂u/∂x εyy = ∂v/∂y εxy = ½(∂u/∂y + ∂v/∂x)

#### Principal strains

Computed from the eigenvalues of the strain tensor (Mohr's circle):

R = √[(εxx − εyy) / 2]2 + εxy2
εI = (εxx + εyy) / 2 + R εII = (εxx + εyy) / 2 − R

#### In-plane rotation

ω = ½(∂v/∂x − ∂u/∂y) × 180/π [degrees]

### 11.3 Strain Criteria

In addition to the standard fields, you can define custom strain criteria using mathematical expressions that combine the computed fields. This allows computing any derived quantity (equivalent strain, shear, etc.) without post-processing.

Criterion editor dialog showing the Von Mises equivalent strain expression.

#### Available variables

Variable | Description
--- | ---
`exx` | Normal strain along X
`eyy` | Normal strain along Y
`exy` | Shear strain
`eI` | First principal strain (max)
`eII` | Second principal strain (min)
`omega` | In-plane rotation (in degrees)

#### Operators and functions

Syntax | Description
--- | ---
`+ − * /` | Addition, subtraction, multiplication, division
`**` | Power (e.g. `eI**2`)
`sqrt` | Square root
`abs` | Absolute value
`max`, `min` | Maximum / minimum of two values (e.g. `max(eI, eII)`)

#### Default criteria

Two criteria are provided by default as examples. They can be edited or removed:

Name | Expression
--- | ---
Von Mises | `sqrt(2/3 * (eI**2 + eII**2 - eI*eII))`
Max Shear | `(eI - eII)/2`

#### Managing criteria

- Click + New criterion to add a new expression. The editor validates the syntax in real time.
- Check or uncheck a criterion to include or exclude it from computation.
- Each criterion carries a pencil to edit its expression and a cross to delete it.
- Criteria are saved in the user profile, so they persist across projects: you only need to define them once.

The display controls (Fit, 1:1, Sync, histogram with Auto, Crop, Reset, Apply to all, markers and line profiles) work the same as in the Displacements tab.

## 12. Fracture TabFull edition

The Fracture tab appears when a computation has been run with a Heaviside-enriched mode. It displays the fracture parameters extracted from the H-DIC optimization and their post-processed derivatives.

The parameters are shown along the detected crack line rather than as full maps. The H-DIC fits its discontinuity parameters at every grid point, whether a crack is there or not. The wide band that appears around a crack on a full map is not the crack itself: it is the width of the correlation window, because every window that touches the crack reports a jump. Argos2D locates the crack by ridge detection on the displacement field, then reads the H-DIC values along that line. Points away from the crack are left empty.

Fracture tab: the opening intensity along the detected crack line. Data courtesy of Damien Texier.

Use the Parameter dropdown at the top left to select which field to display. Fields are organized in three categories. The display controls (Fit, 1:1, histogram with Auto, Crop, Reset, Apply to all) work the same as in the other tabs.

### 12.1 Crack Opening

These fields describe the displacement discontinuity (jump) across the crack. The jump vector (u') is a direct output of the H-DIC optimization; the opening components and intensity are derived from it:

Field | Source | Description
--- | --- | ---
Opening X | Post-processed | Horizontal crack opening displacement
Opening Y | Post-processed | Vertical crack opening displacement
Opening intensity | Post-processed | Magnitude of the crack opening vector

Openingx = 2 · u' Openingy = 2 · v'
Intensity = √Openingx2 + Openingy2

where u' and v' are the jump parameters from the H-DIC optimization. The factor 2 accounts for the Heaviside function ranging from −1 to +1.

Sign convention: Opening X and Opening Y are expressed in the global image coordinate system, not in the crack's local frame. Their sign depends on the relative motion of the two crack faces as defined by the Heaviside convention: a negative value means that the face on the +1 side of the Heaviside moves in the negative direction relative to the other face. The Opening intensity (norm of the vector) is always positive. To determine the actual opening direction regardless of sign, use the β angle.

### 12.2 Geometry

These fields describe the crack orientation and position within each correlation window:

Field | Source | Description
--- | --- | ---
Crack angle α | Post-processed | Angle of the crack line with respect to the horizontal axis, in degrees [0, 180).
Opening direction β | Post-processed | Direction of the opening vector, in degrees [−180, 180].

A fourth field, Crack position φ, is the signed distance from the crack front to the center of the correlation window, in pixels. It is computed and saved with the others but is not offered for display: on the crack line it is zero by construction, since it is what places the line there.

α = (θ + π/2) mod π [converted to degrees]
β = atan2(Openingy, Openingx) [converted to degrees]

where θ is the raw crack orientation angle from the H-DIC optimization (normal to the crack front).

### 12.3 Crack Line Controls

Control | Effect
--- | ---
Min jump | Smallest displacement jump that counts as a crack, in pixels. It changes no measured value, only which points are kept.
Line width | Drawing width of the line, in image pixels. Visual only.
Save all | Writes the nine fields into the project's Fracture folder, one float TIFF per field.

Min jump is a jump magnitude, so it covers mode I opening and mode II sliding alike: a pure mode II crack has zero opening but a jump well above zero. Use about 0.1 px for initiation and 0.5 px for well developed cracks.

A segment below the threshold is kept when measured points above it lie on both sides along the line, within one correlation window. It is dropped when they lie on one side only. A gap inside a crack is therefore filled, while the line stops at the last measured point instead of being extended past it. Where the line ends is a measurement, not the crack tip: the tip lies beyond, at a distance that depends on the noise floor of the test.

The detection scale is chosen automatically from the data. There is nothing to set.

Line width applies to saved maps as well as to the screen. A line drawn 10 px wide is not a 10 px crack.

Save all uses the same file names as the maps written automatically after a computation, so it replaces them. Points away from the crack are written as NaN. Nothing is saved automatically, because the result depends on the Min jump setting.

### 12.4 Crystallographic Decomposition

This post-processing step decomposes the crack opening vector into components relative to the crack front orientation. This is useful for characterizing slip systems in crystalline materials:

Field | Description
--- | ---
Longitudinal (screw) | Component of the opening parallel to the crack front (screw-type displacement).
Transverse (edge) | Component of the opening perpendicular to the crack front (edge-type displacement).
Relative angle | Angle between the opening direction and the crack front normal, in degrees [−180, 180].

γ = (−β) − (α − 90°) [normalized to −180°, 180°]
Longitudinal = Intensity × sin(γ) Transverse = Intensity × cos(γ)

where γ is the relative angle between the opening direction (β) and the crack front normal (α − 90°). The sign change on β accounts for β being measured in image axes (y downwards) and α in mathematical axes (y upwards).