register_mi — MATCHREG intensityreg op

• 데이터 종류: image2d × image2d → table

• 호출: 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)(구현을 직접 호출하려면 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), 원장에서 가져오려면 opsmatchreg.get("register_mi"))

• GPU: 없음(CPU 참조 구현만)

사용법

(정규화) 상호정보량을 최대로 하는 강체 / 상사 / 아핀 변환으로 moving을 fixed에 맞춘다. → table(kind="registration").

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

撮像の違う組(可視と赤外、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 未満。

자세한 사용 가이드

• matching_registration 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_multimodal_mi_registration — py -3.11 examples/poc_multimodal_mi_registration.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

features_match · ransac_homography · ransac_fundamental · registration_to_flow2d

같은 카테고리(intensityreg)

register_ecc · register_ffd · registration_to_flow2d · register_accuracy_map · register_capture_range


*Provenance: intensityreg.py — MATCHREG 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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