register_mi — MATCHREG intensityreg op

• Data kinds: image2d × image2d → table

• Call: import fullseye as fs; fs.ledger.register_mi(fixed, moving, model='affine', bins=32, metric='nmi', levels=None, max_iter=2000, warp_init=None, min_overlap=0.25) (implementation को सीधे call करना हो तो import intensityreg; intensityreg.register_mi(fixed, moving, model='affine', bins=32, metric='nmi', levels=None, max_iter=2000, warp_init=None, min_overlap=0.25), registry से लेना हो तो opsmatchreg.get("register_mi"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

(Normalised) mutual information को अधिकतम करने वाले rigid / similarity / affine transform से moving को fixed पर मिलाता है। → table (kind="registration")।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

撮像の違う組(可視と赤外、CT と MR、照明の向きの違う 2 枚)では明るさの対応が線形でも単調でもないので、相関(register_ecc)や SSD は使えない。相互情報量は「fixed の明るさを知ると moving の明るさがどれだけ当てられるか」なので、対応が一対一でなくても(折り返しがあっても) 合わせられる(Viola & Wells 1997、Maes et al. 1997)。既定の目的は重なりの大きさに鈍い正規化版 (H(A)+H(B))/H(A,B)(Studholme 1999、1〜2)。

同時ヒストグラムは fixed を硬いビン、moving を隣り合う 2 ビンへ線形に振り分け(変換のパラメータに対して連続)、moving の外へ出た画素は数えない。最適化は Powell 法(微分を使わない)を粗から細の levels 段で。変数は回転・伸縮を画像の半径倍して画素の単位にそろえてある。

★imgmetrics.mutual_information は指標(硬いビン 2 つ、ビットで返す)で、ここの目的関数は振り分けのある別の推定量。合わせ終わった組を imgmetrics で測ると metric と少し違う。

Args:

fixed: 基準の 2-D 画像。

moving: 合わせる 2-D 画像(撮像が違ってよい)。

model: MI_MODELS。

bins: ヒストグラムのビン数(2 以上)。

metric: "nmi"(既定)/ "mi"(ビット)。

levels: ピラミッドの段数。None なら最も粗い段が 16 px 以上になる範囲で最大 3 段。

max_iter: 段ごとの Powell の反復の上限。

warp_init: 初期の変換(2×3 / 3×3、fixed → moving、射影の行は 0)。

min_overlap: 重なりの割合がこれ未満の変換は目的関数を最悪にする(外へ逃げる解を防ぐ)。

Returns:

dict(kind="registration", method="mi")。鍵は register_ecc と同じ。metric_name は

"nmi" / "mi_bits"、加えて mi_bits / nmi(全解像の最後の値)。

Raises:

ValueError: 画像が不正 / model / metric が違う / 引数が値域外 / 初期の変換が射影 /

合わせ終わっても重なりが min_overlap 未満。

उपयोग की विस्तृत guide

• matching_registration family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_multimodal_mi_registration — py -3.11 examples/poc_multimodal_mi_registration.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

features_match · ransac_homography · ransac_fundamental · registration_to_flow2d

इसी category के (intensityreg)

register_ecc · register_ffd · registration_to_flow2d · register_accuracy_map · register_capture_range


*Provenance: intensityreg.py — MATCHREG operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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