score oplabels2d × labels2d → tableimport fullseye as fs; fs.ledger.seg_rand(a, b, ignore_label=None) (実装を直接呼ぶなら import segcompare; segcompare.seg_rand(a, b, ignore_label=None)、台帳から引くなら opsemproof.get("seg_rand"))Rand index, adjusted Rand index and the adapted Rand error (CREMI / SNEMI).
With n_ij the contingency table, a_i / b_j its row and column sums and N
the pixel count:
rand_index = fraction of pixel pairs on which the two agree (same/different);adjusted_rand_index = Hubert & Arabie’s chance-corrected version (1 = identical,
about 0 = independent);adapted_rand_error = 1 - F over pairs of distinct pixels: pair precision =
(sum n_ij^2 - N) / (sum b_j^2 - N) — of the pairs the candidate puts together, the
fraction the truth also puts together — and recall = (sum n_ij^2 - N) /
(sum a_i^2 - N) (Arganda-Carreras et al. 2015). The - N removes each pixel’s pair
with itself. scikit-image’s adapted_rand_error returns the same error, but its
precision is divided by the truth pairs (its code sums the rows of the
truth-by-test table), i.e. it is this recall; its docstring says otherwise.Raises ValueError: as :func:seg_contingency; fewer than 2 counted pixels.
py -3.11 examples/poc_em_split_merge_score.pytable を入力に取れる)seg_synapse_partners · seg_wiring_variation · seg_synapse_nri · seg_wiring_exposure
score)seg_contingency · seg_variation_of_information
Provenance: segcompare.py — EMPROOF operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.