app
DIC Postprocess
DIC Postprocess converts Ncorr strain fields into EXX and EYY overlays on an optical reference image and calculates descriptive strain statistics over a validated ROI. It is a rendering and summary tool; it does not rerun DIC.
Requirements And Launch
Input MAT files must contain the Ncorr result structure recognized by the app loader.
labkit_DICPostprocess_app
Inputs
Three inputs define one analysis:
- an Ncorr MAT file containing readable EXX and EYY strain fields;
- the optical reference image used for the displayed specimen domain;
- a mask image whose nonzero pixels define the requested ROI.
All three are required before Generate overlays + summary can produce a result. The loader validates the expected Ncorr structure and reports malformed or incomplete MAT files instead of guessing at unrelated arrays.
Basic Workflow
- Choose the DIC MAT file, matching reference image, and mask image.
- Set the overlay range and opacity.
- Adjust oversampling, smoothing, and edge trimming when justified.
- Optionally tune optical-image brightness, contrast, gamma, saturation, and RGB gains.
- Generate the EXX/EYY overlays and review the summary table.
- Save clean overlay PNGs and export the summary CSV.
Changing an option updates the reproducible project parameters. Generate again before export when inputs or processing parameters change.
Overlay Parameters
| Parameter | Default | Meaning |
|---|---|---|
| Alpha | 0.60 | opacity of strain color over the optical image |
| Color min | -0.15 | lower strain value mapped into the color scale |
| Color max | 0.15 | upper strain value mapped into the color scale |
| Oversample | 6 | output-domain refinement factor used during preparation |
| Smooth sigma | 0.8 | Gaussian smoothing scale applied to valid strain data |
| Edge trim | 1 | boundary pixels removed from the valid strain support |
Color limits affect rendering, not the stored numeric strain values used for the summary. Alpha affects compositing only. Smoothing and edge trimming alter the processed field and therefore can affect the summary; record them with any reported measurements.
Optical Image Parameters
Brightness defaults to 0; contrast, gamma, saturation, and red/green/blue gain default to 1. These controls prepare the visual background. They do not modify EXX/EYY values. Extreme settings can hide features or imply contrast that is not present in the strain field, so exported figures should retain the processing manifest.
Processing And Scientific Semantics
The app constructs a valid-strain mask from finite Ncorr values, intersects it with the requested ROI, trims invalid edges, and maps the result to the optical image domain. Linear resizing is used for continuous image/strain data and nearest-neighbor resizing for masks. Invalid strain samples remain excluded rather than being converted to zero.
Summary statistics are computed independently for EXX and EYY over the final valid ROI. The result table reports the metrics returned by dic_postprocess.analysisRun.summarizeStrain; open its API page for the exact table schema and non-finite-value behavior.
Outputs
- a clean EXX overlay PNG;
- a clean EYY overlay PNG;
- a CSV table containing the ROI strain summary;
- a LabKit result manifest describing inputs, parameters, and output roles.
The clean PNG exports contain only the composed image, not axes chrome or interactive toolbar controls. Input MAT, reference, and mask files are never modified.
Use Without The GUI
inputs = struct( ...
"referenceImage", zeros(16, 16, 3), ...
"maskImage", true(16), ...
"strain", struct( ...
"exx", zeros(8), ...
"eyy", 0.01 .* ones(8), ...
"roiMask", true(8)));
parameters = struct( ...
"alpha", 0.60, "colorMin", -0.15, "colorMax", 0.15, ...
"oversample", 6, "smoothSigma", 0.8, "edgeTrim", 1, ...
"brightness", 0, "contrast", 1, "gamma", 1, ...
"saturation", 1, "redGain", 1, "greenGain", 1, "blueGain", 1);
[summary, overlayExx, overlayEyy] = ...
dic_postprocess.analysisRun.prepareOutputs(inputs, parameters);
The source loader is app-owned; the generated API table below lists only operations intentionally supported as public GUI-free calculation APIs.
Function Reference
Use the generated pages for makeStrainOverlay, prepareOutputs, and summarizeStrain for exact required and optional fields, units, output shapes, empty selections, failure behavior, and related APIs.
Errors And Limitations
- A MAT file without the recognized Ncorr strain structure is rejected.
- Reference image, mask, and strain arrays must describe the same specimen domain; resizing resolves array dimensions, not semantic misalignment.
- A mask with no valid finite strain pixels produces no meaningful summary.
- Smoothing can suppress local extrema. Choose it as an analysis parameter, not merely a visual preference.
Related Topics
Functions And API
Open a function for exact MATLAB syntax, arguments, outputs, behavior, and source.
| Function | Purpose |
|---|---|
dic_postprocess.analysisRun.makeStrainOverlay | Blend a color-mapped strain field over a reference image. |
dic_postprocess.analysisRun.prepareOutputs | Build DIC strain summaries and both display overlays. |
dic_postprocess.analysisRun.summarizeStrain | Summarize finite EXX and EYY values inside a mask. |
Change history
- 2026-07-20 - App actions require explanatory hover helpfeat | compatible
- 2026-07-19 - App SDK explicit contract replaces the retired UI runtimerefactor | breaking
- 2026-07-17 - Public API help is complete, discoverable, and behavior checkeddocs | compatible
- 2026-07-17 - Explicit layout action contractrefactor | compatible
- 2026-07-16 - DIC and Gait project validation ownershiprefactor | compatible
- 2026-07-16 - Runtime-owned session defaults across App familiesrefactor | compatible
- 2026-07-16 - DIC uses framework-owned optional source slotsrefactor | compatible
- 2026-07-16 - DIC Postprocess adopts one product and project declarationrefactor | compatible
- 2026-07-16 - UI 7 public runtime boundaryrefactor | breaking
- 2026-07-15 - Runtime V2 lifecycle ownership across the app fleetrefactor | breaking
- 2026-07-13 - MATLAB-compatible image conversion APIrefactor | breaking
- 2026-07-13 - Base-MATLAB image compatibilityfeat | compatible
- 2026-07-06 - UI 5 facade redesign, app migration, and plot refreshrefactor | breaking
- 2026-07-03 - CSC export and viewport policyfeat | compatible
- 2026-07-03 - UI groups migrationrefactor | compatible
- 2026-07-03 - Declarative app runtimerefactor | compatible
- 2026-07-01 - Debug sample packsfeat | compatible
- 2026-06-30 - Migration helper cleanuprefactor | compatible
- 2026-06-30 - App alerts through UI facadefeat | compatible
- 2026-06-30 - Close guards and caught-exception diagnosticsfeat | compatible
- 2026-06-30 - Output folder promptsfeat | compatible
- 2026-06-24 - File-panel migrationrefactor | breaking
- 2026-06-23 - Facade contract baseline and release validation hardeningci | compatible
- 2026-06-23 - Version metadata baselinefeat | compatible