matching op• 資料種類:image2d × image2d → image2d
• 呼叫: import fullseye as fs; fs.ledger.histogram_match(src, ref, bins=None, ties='average')(要直接呼叫實作,import colortransport; colortransport.histogram_match(src, ref, bins=None, ties='average');從台帳取用則 opscolortransport.get("histogram_match"))
把 src 的取值分布匹配到 ref(一維精確最佳輸運)。
保持秩不變,替換為參考的分位點。指定 bins 時,用該級數的累積分布近似 —— 更快但不再嚴格,所以預設為 None (嚴格)。
如何處理同值像素,會改變圖的含義。單調映射本應「相等的輸入映射為相等的輸出」,但樸素地按秩替換會把同值撕開。實測(值 2 的像素有 4 個的整數影像):輸出分成了 0.2222 / 0.3333 / 0.4444 / 0.5556 這 4 個值。也就是說,原本平坦的區域裡長出了原圖中沒有的濃淡。整數影像到處都是同值,所以這不是例外而是常態。
• ties="average"(預設)—— 給同值像素分配落在它們身上的參考值的 平均。相等的輸入映射為相等的輸出,單調性得以保持。作為代價,輸出的分布不再與參考嚴格一致(按同值的團塊, 分布被圓成階梯狀)。對連續的輸入(無同值)則仍嚴格一致。
• ties="break" —— 按秩原樣撕開。輸出的分布與參考嚴格一致,但平坦部分會出現虛假的濃淡。只在目的是嚴格匹配分布、且明知不會當作圖來看時使用。
無論選哪個都會失去一些東西(分布的嚴格性 或 平坦部的平坦性),所以 沒有默默選定一方,而是做成了參數。
直接作用於多通道影像會破壞通道間的相關。各軸的邊緣分布雖然吻合,顏色組合卻可能變成原本沒有的。
要連同相關一起傳輸,請用 color_transfer 的 method="gaussian"。
• colorimetry — 測色與光譜知識 —— 顏色只由「光譜 × 光源 × 觀察者」決定
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• color_transport — py -3.11 examples/color_transport.py
• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py
image2d 作為輸入)matching)color_transfer · gaussian_transport_map
*Provenance: colortransport.py — COLORTRANSPORT 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.