LabKit MATLAB Workbench

app

Image Match

Image Match transfers tone and color statistics from one reference image to one or more source images while preserving each source image's geometry.

Requirements And Launch

The app performs appearance matching only; it does not geometrically register images.

labkit_ImageMatch_app

Inputs

Choose one reference image and add source images or a source folder. The reference supplies appearance statistics and is not exported as a matched source. All images are normalized to RGB double data in [0,1]; output retains the source height and width.

Basic Workflow

  1. Choose the reference and source images.
  2. Select a matching method.
  3. Set overall, tone, and color strength.
  4. Apply the match to history.
  5. Inspect Matched, Original, and Before | After views.
  6. Undo/reset history or add another step.
  7. Export matched images.

Changing method or strength previews the pending match; Apply match saves the settings as the next step in the image's processing history.

Matching Methods

MethodBehavior
Balancedrobust white-point match followed by Lab-style tone/color transfer
White balancematch robust bright-neutral RGB white points
Tone onlyquantile-match Lab lightness only
Protected toneconstrained luminance/background adjustment with shadow, highlight, and saturation guards
Lab stylequantile-match lightness and covariance-match Lab chroma
Histogramindependently quantile-match all three Lab channels

Overall strength blends the matched result with the original. Tone and color strength separately blend lightness and chroma behavior where the selected method supports them. All three default to 100%.

Robust statistics and covariance regularization handle flat or nearly single-color images, but a visually dissimilar reference can still produce an unhelpful result. Matching reproduces distributions, not semantic lighting or camera calibration.

History And Outputs

Each source is recomputed from its original plus the ordered match history. Undo removes the latest step and reset removes all steps. Export supports PNG, TIFF, and JPEG and writes an image manifest containing reference/source identity, method, strengths, history, format, and output filenames. Source and reference files are never overwritten.

Use Without The GUI

source = imread("source.png");
reference = imread("reference.png");
step = image_match.analysisRun.makeStep("Balanced", 100, 100, 100);
matched = image_match.analysisRun.applyMatch(source, reference, step);

% Apply a stored sequence:
outputs = image_match.analysisRun.applyPipeline({source}, step, reference);
output = outputs{1};

Function Reference

The generated pages for applyMatch and applyPipeline document supported step fields and defaults, normalization and output geometry, empty-input behavior, failures, examples, and related APIs.

Errors And Limitations

Change history