LabKit MATLAB Workbench

app

FLIR Thermal

FLIR Thermal decodes radiometric FLIR JPEG/RJPEG files, displays calibrated temperature maps, measures rectangular ROI hot/cold/mean values, and exports rendered images with Celsius data.

Requirements And Launch

A .jpg, .jpeg, or .rjpg extension alone is insufficient; the file must contain a readable FLIR raw thermal record and calibration metadata.

labkit_FLIRThermal_app

Inputs And Navigation

Use Add FLIR files or folder to load one or more radiometric images. The selected row is the current image; Previous/Next change selection without discarding per-image display range or measurement annotations. Source files are read-only.

Basic Workflow

  1. Load radiometric files and inspect the decoded min/max/metadata summary.
  2. Choose a palette and color mapping.
  3. Set a range preset, per-image range, or shared group range.
  4. Choose ROI hot spot, ROI cold spot, or ROI mean, then drag its rectangle.
  5. Optionally click the image for an independent manual point reading.
  6. Review the numeric results and markers.
  7. Export the current image or the full batch.

Placing or dragging a reading ROI and refreshing its marker preserves the current zoom. The reading is recalculated from the thermal matrix, not from screen colors.

Temperature Conversion

labkit.thermal.readFile extracts the raw sensor matrix and converts it to Celsius. Environment-corrected conversion uses Planck constants plus available emissivity, object distance, atmospheric/window transmission, reflected temperature, and related metadata. Missing environmental fields may use documented defaults and are listed in record.metadata.temperatureConversion; required Planck constants are never invented.

Absolute temperature accuracy depends on camera calibration and environmental assumptions. Preserve conversion diagnostics with reported measurements.

Display Controls

Palettes are Turbo, Iron, Hot, Parula, and Gray. Mapping modes are Linear, Log, and Gamma; gamma defaults to 2.2 and is limited to 0.1-5. Display ranges are stored per image. Actions can set each image independently, apply one shared group range, fit the current image, or round configured bounds.

Palette, mapping, gamma, and color limits affect only mapping into display colors. They do not transform the Celsius matrix or exported temperature values.

ROI Readings

The rectangular ROI includes both boundary pixels after its two corners are rounded and clamped to the thermal matrix. Hot and cold readings report value and [x y] location. Mean ignores non-finite pixels and also records ROI geometry and finite pixel count. The marker is a display annotation; moving it does not change source data.

Outputs

Current or batch export writes PNG, TIFF, or JPEG rendered thermal images, matching color scale graphics, Celsius CSV matrices, measurement values, a batch CSV summary, and the standard flir_thermal.labkit.json result manifest. The clean image export excludes interactive toolbar chrome. Numeric temperature outputs remain Celsius regardless of palette or mapping mode.

Project And State

Saved projects keep portable source references, display parameters, export settings, and lightweight per-image ranges and readings. Raw sensor matrices and decoded Celsius matrices are loaded again from the selected source when a project opens. Missing source files use the standard relinking flow rather than relying on a local absolute path. An existing source that is no longer a readable radiometric file aborts the restore and preserves the current document. Batch import may still report and skip rejected selections before they become project sources.

An empty launch does not choose an output directory. Adding files establishes the source-adjacent default; Choose folder remains available before export.

Use Without The GUI

record = labkit.thermal.readFile("capture.rjpg");
temperatureC = record.temperatureC;

point = flir_thermal.analysisRun.pointTemperatureReading( ...
    temperatureC, [120 80]);
[hot, cold, meanReading] = ...
    flir_thermal.analysisRun.roiTemperatureMeanReading( ...
        temperatureC, [90 60], [169 129]);
[imageHot, imageCold] = ...
    flir_thermal.analysisRun.extremeTemperatureReadings(temperatureC);

Function Reference

The generated pages for pointTemperatureReading and extremeTemperatureReadings specify coordinate order, clamping, nonfinite/empty behavior, returned fields, conversion failures, and related measurement APIs.

Errors And Limitations

Change history