このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
chromadapt
色順応によって RGB イメージのカラー バランスを調整します
説明
は、シーンの光源に応じて sRGB イメージ B
= chromadapt(A
,illuminant
)A
のカラー バランスを調整します。光源は入力イメージと同じ色空間になければなりません。
は、追加オプションを制御するために名前と値の引数を使用して B
= chromadapt(A
,illuminant
,Name,Value
)A
のカラー バランスを調整します。
例
グレー ピクセルの指定によるイメージのカラー バランス
黄色の色かぶりが著しいイメージを読み取って表示します。
A = imread('hallway.jpg'); imshow(A) title('Original Image')
柱上の点など、イメージ内で白色またはグレーに見えるピクセルを選択します。天井灯の上の点など、飽和ピクセルを選択しないでください。選択した点を緑色で表示します。
x = 2800; y = 1000; gray_val = impixel(A,x,y); drawpoint('Position',[x y],'Color','g');
選択した色をシーン照度の基準として使用し、イメージのホワイト バランスを修正します。
B = chromadapt(A,gray_val);
補正したイメージを表示します。これで柱が予想どおり白色に表示され、残りのイメージの黄ばみがなくなりました。
imshow(B)
title('White-Balanced Image')
線形 RGB 色空間におけるイメージのカラー バランス
最小限に処理された線形 RGB 強度を含むイメージ ファイルを開きます。
A = imread("foosballraw.tiff");
イメージ データは、黒のレベルを補正し、ピクセルごとに 16 ビットにスケーリングした後の生のセンサー データです。強度を内挿して色を再構成します。カラー フィルターの配列パターンは RGGB です。
A = demosaic(A,"rggb");
イメージを表示します。イメージは線形 RGB 色空間であるため、ガンマ補正を適用してイメージが画面上に正しく表示されるようにします。
A_sRGB = lin2rgb(A);
imshow(A_sRGB)
title("Original Image")
イメージにはシーン内に ColorChecker® チャートがあります。周囲光の色を取得するには、チャートのニュートラル パッチの 1 つでピクセルの RGB 値を表示します。赤のチャネルの強度は、他の 2 つのチャネルの強度よりも低くなります。これは、光が青緑色であることを示します。
x = 1510; y = 1250; light_color = [A(y,x,1) A(y,x,2) A(y,x,3)]
light_color = 1x3 uint16 row vector
7361 14968 10258
イメージのカラー チャネルのバランスを修正します。名前と値の引数 ColorSpace
を使用して、イメージと光源が線形 RGB で表現されるように指定します。
B = chromadapt(A,light_color,"ColorSpace","linear-rgb");
ガンマ補正でカラー バランス済みのイメージを表示します。
B_sRGB = lin2rgb(B);
imshow(B_sRGB)
title("Color-Balanced Image")
グレー パッチがカラー バランス済みであることを確認します。カラー バランス済みのグレー パッチでは、3 つのカラー チャネルの強度は予想どおり相似しています。
patch_color = [B(y,x,1) B(y,x,2) B(y,x,3)]
patch_color = 1x3 uint16 row vector
13010 13010 13010
入力引数
A
— RGB イメージ
m x n x 3 の数値配列
RGB イメージ。m x n x 3 の数値配列として指定します。
データ型: single
| double
| uint8
| uint16
illuminant
— シーンの光源
3 要素の数値ベクトル
シーンの光源。3 要素数値ベクトルとして指定します。光源は入力イメージ A
と同じ色空間になければなりません。
データ型: single
| double
| uint8
| uint16
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: I2 = chromadapt(I,uint8([22 97 118]),ColorSpace="linear-rgb")
は、線形 RGB 色空間でイメージ I
のカラー バランスを調整します。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: I2 = chromadapt(I,uint8([22 97 118]),"ColorSpace","linear-rgb")
は、線形 RGB 色空間でイメージ I
のカラー バランスを調整します。
ColorSpace
— 色空間
"srgb"
(既定値) | "adobe-rgb-1998"
| "prophoto-rgb"
| "linear-rgb"
入力イメージおよび光源の色空間。"srgb"
、"adobe-rgb-1998"
、"prophoto-rgb"
、または "linear-rgb"
として指定します。"linear-rgb"
オプションを使用して、強度が線形である RGB イメージのカラー バランスを調整します。
データ型: char
| string
Method
— 色順応法
"bradford"
(既定値) | "vonkries"
| "simple"
A
の RGB 値をスケーリングするのに使用される色順応法。以下のいずれかの値として指定します。
"bradford"
—ブラッドフォード錐体応答モデルを使用したスケーリング"vonkries"
—フォン・クリース錐体応答モデルを使用したスケーリング"simple"
—光源を使用したスケーリング
データ型: char
| string
出力引数
参照
[1] Lindbloom, Bruce. Chromatic Adaptation. http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html.
バージョン履歴
R2017b で導入R2022b: ProPhoto (ROMM RGB) 色空間のサポート
chromadapt
は、sRGB 色空間や Adobe RGB 1998 色空間よりも色域の広い ProPhoto (ROMM RGB) 色空間をサポートするようになりました。ProPhoto 色空間を使用するには、名前と値の引数 ColorSpace
を "prophoto-rgb"
として指定します。
参考
whitepoint
| colorangle
| 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)