colorangle
2 つの RGB ベクトル間の角度
説明
例
光源推定アルゴリズムの精度の比較
テスト イメージを読み取ります。イメージは、Canon EOS 30D デジタル カメラで撮影した、黒のレベルを補正し、ピクセルごとに 16 ビットにスケーリングした後の生のセンサー データです。デモザイキング、ホワイト バランシング、色強調、ノイズ フィルタリング、またはガンマ補正は適用されていません。
RAW = imread("foosballraw.tiff");
関数demosaic
を使用して内挿し、カラー イメージを取得します。カラー フィルターの配列パターンは RGGB です。
A = demosaic(RAW,"rggb");
イメージを表示します。イメージは線形 RGB 色空間であるため、ガンマ補正を適用してイメージが画面上に正しく表示されるようにします。
A_sRGB = lin2rgb(A); imshow(A_sRGB)
イメージは ColorChecker® チャートを含みます。チャートのニュートラル パッチを使用し、事前に計算されたグラウンド トゥルースの光源を指定します。
illuminant_groundtruth = [0.0717 0.1472 0.0975];
光源の推定にずれが生じないように、マスクを作成して ColorChecker チャートを除外します。
mask = true(size(A,1), size(A,2)); mask(920:1330,1360:1900) = false;
illumwhite
、illumgray
、およびillumpca
の 3 つの異なる光源推定アルゴリズムを実行します。
illuminant_whitepatch = illumwhite(A,"Mask",mask); illuminant_grayworld = illumgray(A,"Mask",mask); illuminant_pca = illumpca(A,"Mask",mask);
関数 colorangle
を使用して、それぞれの推定された光源とグラウンド トゥルースとの間の角度を計算することによって、各推定値をグラウンド トゥルースと比較します。角度が小さいほど、推定の精度が上がります。推定の大きさは重要ではありません。なぜなら、光源の方向のみが色順応によるイメージのホワイト バランスに使用されるからです。
angle_whitepatch = colorangle(illuminant_whitepatch,illuminant_groundtruth)
angle_whitepatch = 5.0921
angle_grayworld = colorangle(illuminant_grayworld,illuminant_groundtruth)
angle_grayworld = 5.1036
angle_pca = colorangle(illuminant_pca,illuminant_groundtruth)
angle_pca = 5.0134
angle_pca
の値は最小です。これは、PCA 光源推定アルゴリズムがこのイメージのグラウンド トゥルース照度に最も近いことを示します。
入力引数
rgb1
— 1 番目の RGB ベクトル
3 要素の数値ベクトル
1 番目の RGB ベクトル。3 要素の数値ベクトルとして指定します。
データ型: single
| double
| uint8
| uint16
rgb2
— 2 番目の RGB ベクトル
3 要素の数値ベクトル
2 番目の RGB ベクトル。3 要素の数値ベクトルとして指定します。
データ型: single
| double
| uint8
| uint16
出力引数
angle
— RGB ベクトル間の角度
数値スカラー
RGB ベクトル間の角度。数値スカラーとして返されます。
データ型: double
詳細
角度誤差
角度誤差は、グラウンド トゥルースに対する光源の推定を評価するのに役立つメトリクスです。グラウンド トゥルースの光源と推定された光源との間の角度が小さいほど、推定の精度は高くなります。
バージョン履歴
R2017b で導入
参考
whitepoint
| chromadapt
| illumgray
| illumpca
| illumwhite
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)