Skip to content

Freckles

Freckles measures discrete, small, round pigment spots — distinct from larger melasma patches and considered generally smaller than dark spots.

component: freckles
request:
query: "components=freckles,freckles_visualization"
response_path: "results[].description == \"freckles\""
value_range: [0, 1]
also_request:
- freckles_visualization # per-spot coordinates and intensities
warnings: [] # freckles emits no metric-specific codes

Reference imagery for this metric is not yet published.

const fr = response.results.find((r) => r.description === "freckles");
// visualization_data lives on each measurement_locations[] entry.
// Each feature is a "spot": length-1 x[]/y[] arrays, intensity is a number.
const markers = (fr.measurement_locations ?? []).flatMap(
(loc) => loc.visualization_data ?? []
);

Use small dots for markers — large overlays read as alarming on what is often a desirable trait. Consider opt-in toggling rather than always-on display. Paste-ready: Rendering recipes → Spots.

Each measurement_locations[] entry also carries its own per-region value (0..1) alongside its mask_shapes and spot visualization_data. A region scores -1 when its mask couldn’t be sampled — treat that as “region unavailable,” not a real low score.

  • Cultural/aesthetic context matters — many users do not consider freckles a “concern.” Default to neutral copy in the UI.

The freckles metric emits no metric-specific local_warnings[] codes. It inherits global image-quality codes; a skin-mask sampling failure is reported as 401 on the hyperpigmentation finding (which shares the same analysis), not on freckles.