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
Selected area—
Relative fraction of each image
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 the supplied Celsius grid cells within the same normalized selection. Photo and grid must already share the same field of view and orientation. There is no automatic image registration. The color palette is for display; temperatures come from the grid.
Area: the drawn rectangle as a fraction of its image. Relative change compares those two fractions. This is user-selected pixel area, not automatic segmentation or a physical dimension.
Illustrative index: 45% color change, 40% temperature change and 15% selected-area change. Each absolute change is capped at 10 pp, 2°C and 50%, respectively. Without both temperature grids, 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.
Drag a rectangle on each image. Switch between Visible and Thermal.
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.