fullseye

histogram_match — COLORTRANSPORT matching op

使い方

src の値分布を ref に合わせる(1 次元の厳密な最適輸送)。

順位を保ったまま参照の分位点に置き換える。bins を指定すると、その段数の 累積分布で近似する ―― 速いが厳密ではなくなるので、既定は None (厳密)にしてある。

同じ値の画素をどう扱うかで、絵の意味が変わる。 単調写像なら「等しい入力 は等しい出力に写る」はずだが、素朴に順位で置き換えると同値が引き裂かれる。 実測(値 2 が 4 画素ある整数画像):出力は 0.2222 / 0.3333 / 0.4444 / 0.5556 の 4 つに分かれた。つまり平坦だった領域に、元の絵に無い濃淡が 生える。整数画像は同値だらけなので、これは例外ではなく常態。

どちらを選んでも失うものがある(分布の厳密さ か 平坦部の平坦さ)ので、 黙って片方に決めず引数にした

多チャネルの絵にそのまま掛けるとチャネル間の相関を壊す。 各軸の周辺分布は合うのに、色の組合せが元に無かったものになりうる。 相関ごと運びたいときは :func:color_transfermethod="gaussian"

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(image2d を入力に取れる)

poisson_blend

同カテゴリ(matching)

color_transfer · gaussian_transport_map


Provenance: colortransport.py — COLORTRANSPORT operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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