null_distribution — IMGFORENSICS calibration op

• Data kinds: signal → table

• Call: import fullseye as fs; fs.ledger.null_distribution(values) (to call the implementation directly, import imgforensics; imgforensics.null_distribution(values); from the registry, opsimgforensics.get("null_distribution"))

Usage

Summarise the null distribution of the evidence statistic from samples known to be untampered.

This family consistently returns no verdicts. That is correct, but as it stands the user is handed a number like PCE 1832 and has no means of interpreting it. Yet bundling a threshold would be a lie ―― the separation point moves with the number of images, resolution, compression ratio and subject, so it is not a value that can be fixed at shipping time.

Hence the distribution is measured from the user's own clean data. What is bundled is not "a threshold" but "how to measure a threshold", and that stays correct even when the conditions change.

Parameters

values : array_like

Evidence quantities measured on pairs known to be untampered (hash_distance or

fingerprint_correlate()["pce"] etc.). Collect them under the same conditions.

Returns

dict

n / mean / std / min / max / quantiles

(5, 25, 50, 75, 95, 99th percentiles). With few samples the tails cannot be measured,

so n < 20 is reported in caveats (no silent extrapolation).

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• image_forensics_audit — py -3.11 examples/image_forensics_audit.py

• poc_prnu_camera_fingerprint — py -3.11 examples/poc_prnu_camera_fingerprint.py

Ops the type connects to (they accept table as input)

evidence_quantile

Same category (calibration)

evidence_quantile


*Provenance: imgforensics.py — IMGFORENSICS operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.