Explore visible and thermal differences, side by side.
Inputs or selections changed. Run comparison to update the results.
Synthetic sample data
JPG, PNG or WebP
Baseline
Synthetic visible sample
JPG, PNG or WebP
Current
Synthetic visible sample
Comparison resultsDemo formula
Illustrative change index
— / 100
Run a comparison to see the result.
Redness—
Mean RGB red share
Mean temperature—
Numerical temperature data
Outlined area—
Trace both affected-area outlines and confirm alignment
How this demonstration calculates differences
Redness: average 100 × R / (R + G + B) in the selected visible pixels. Change is shown in percentage points (pp). This is an uncalibrated color measurement affected by lighting and camera settings.
Temperature: mean of supplied Celsius grid cells whose centers fall inside the green comparison region. Photo and grid must already share the same field of view and orientation. Manual baseline/current alignment maps the region between images; it does not align a photo to its thermal grid. The color palette is for display; temperatures come from the grid.
Area: each independently drawn amber outline is measured in the baseline image frame using the confirmed position, rotation and scale. Relative change is shown only when both outlines and confirmed alignment are present. This is manually outlined image area, not automatic segmentation or cm². Use stable surrounding features for alignment; substantial perspective or shape changes require a new capture.
Illustrative index: 45% color change, 40% temperature change and 15% outlined-area change. Each absolute change is capped at 10 pp, 2°C and 50%, respectively. Missing temperature or outline metrics are omitted and the available weights are renormalized. The formula is a replaceable workflow demonstration, not an Ectoscan-trained model or a clinical assessment.
FLIR ONE Edge Pro: native radiometric JPEG temperature extraction is not implemented in this first build. A JPEG can be viewed as an image, but its embedded thermal measurements are not read. Use a corresponding numerical grid for temperature analysis. Use ordinary visible-light photographs for redness.
Start here.
A complete local comparison workflow. No installation, server or account is required.
Try the sample
Select Load sample. Both images and temperature grids are synthetic, generated test data.
Choose Align images and confirm the overlay. Draw one linked comparison region with Rectangle, Polygon or Freehand. Switch to Affected-area outlines to trace each boundary separately. Use Edit points, Undo or Clear to correct a selection.
Select Run comparison. Change a selection and rerun to see the calculation respond.
Save session downloads a reusable JSON file. Reopen it with Open saved session.
Use your own scans
Import a baseline and current visible-light photo. Add the corresponding, already aligned temperature grids. CSV uses plain numeric rows in Celsius with no header. JSON accepts the format below. Without grids, the app reports color and selected-area differences only.
Flat JSON grids are also supported: {"unit":"C","width":3,"height":2,"data":[32.1,32.3,32.5,32.2,33.1,32.6]}.
What we need next from the camera
Two original FLIR ONE Edge Pro radiometric JPEG stills (baseline and follow-up) and corresponding phone photos. Preserve the originals when transferring them. The next integration step is extracting their actual temperature grids; this version does not decode FLIR's embedded radiometric data.
Use on your computer
Open Ectoscan in Safari or Chrome. Processing is local and imported files stay in your browser. Your current session is autosaved on this device. Use Save session for a downloadable backup; clearing website data or removing the app can remove local work. Imported images are reduced to a maximum 1,200-pixel edge for this prototype's analysis; keep the original files separately.
Paste temperature data
Baseline · Celsius values only. Numeric CSV rows or a JSON grid.
Start a new session?
This clears the current photos, selections, temperature grids and local autosave. Download a session backup first if you want to keep them.