私のコメントを完全な回答に拡張します。
@prototoastの答えはエレガントですが、各ピクセルのR、G、B値の中央値が個別に計算されるため、出力画像は非常に奇妙に見えます.
視覚的に意味のある明確な中央値を取得するには、中央値を取得する前に画像を白黒にキャストするのが最も簡単です。
rgb2gray()
画像処理ツールボックスの は、色相と彩度を破棄しながら各ピクセルの輝度を保持する方法でこれを行います。
編集:
「RGB 中央値」を「デカルト座標の中間値」として定義したい場合、これは 3 つの画像に対して簡単に行うことができます。
C1=(r1,g1,b1)
中央値の色 、 、C2=(r2,g2,b2)
の3 つの可能な選択肢を持つ単一のピクセルを考えてみましょうC3=(r3,g3,b3)
。通常、これらは 3D 空間で三角形を形成します。
D1_2=abs(C2-C1)
、D2_3=abs(C3-C2)
、 の 3 つの色の間のピタゴラス距離をとりD1_3=abs(C3-C1)
ます。
他の 2 つの色との距離が最も短い色を「中央値」として選択します。Triangle Inequalityのおかげで、 などの定義D1=D1_2+D1_3
と取得min(D1,D2,D3)
が機能するはずです。退化したケースに注意してください: 正三角形 (C1、C2、C3 等距離)、線 (C1、C2、C3 が互いに直線)、または点 (C1=C2=C3)。
4 つ以上の 3D ポイントのセットの "中央値" を定義するのは少し難しいため、3D 中央値に関するこの単純な考え方を 3 つ以上の画像に拡張するのは難しいことに注意してください。
編集 2
N 点の「中央値」を 3D 空間でそれらを囲む最小の球の中心として定義するには、次を試すことができます。
- {N} 内で最も離れている 2 つの点 N1 と N2 を見つけます。N1 と N2 の間の距離は、すべてのポイントを囲む最小の球の直径です。(証明: これよりも小さい球体では、N1 と N2 の両方を同時に囲むことはできません。)
- その場合、中央値は N1 と N2: の中間になります
M = (N1+N2)/2
。
編集 3 : 上記は、3 点が等距離でない場合にのみ機能します。math.stackexchange.com に問い合わせる必要があるかもしれません。
編集 4 : ウィキペディアが再びお届けします! 最小円問題、境界球。