例: HLS/HSV カラー方式
この例の使用方法については、
画像処理の例についてを参照してください。
RGB と HLS/HSV との間の変換: 単色
1. RGB カラーを個別に定義します。
2. rgb_to_hsv 関数を使用して、RGB の個々のカラー成分を HSV に変換します。
3 つの行列すべてで 2 つ目と 3 つ目の要素は同じであり、どちらも 255 に設定されています。
3. rgb_to_hls 関数を使用して、RGB の個々のカラー成分を HLS に変換します。
3 つの行列すべてで 2 つ目と 3 つ目の要素は同じであり、それぞれ 127.5 と 255 に設定されています。
4. hsv_to_rgb 関数と hls_to_rgb 関数を使用して、HLS/HSV の青のベクトルを変換すると元の青色成分に戻ることを確認します。
カラーマップの作成
hsv_to_rgb 関数を使用してカラーマップパレットを生成し、グレースケール画像を偽色で表示します。
1. 彩度と値がどちらも 255 で色相が 0 から MAXH である 256 色のカラーパレットを生成します。
2. HSV の成分を拡大し、結果を転置して 3 x 256 の配列を作成します。
3. hsv_to_rgb 関数を使用して、3 x 256 の RGB 行列から成るパレットエントリを作成します。
4. RGB 行列を転置して 256 x 3 の行列を作成してから、左側に添字列を配置して、256 x 4 のカラーマップにします。
5. 前の手順で作成したカラーパレットを使用してグレースケール画像を偽色で表示し、MAXH の値を変えて画像に対する影響を調べます。
(bridge.bmp) | (bridge_pal.bmp) |
HLS/HSV 画像の表示
入力タイプを HLS または HSV に設定することで、HLS/HSV 画像を画像領域に表示できます。
1. 3 つの部分行列から作成する HSV 画像のサイズを定義します。
2. 画像行列の H、S、V の各成分を作成します。
3. 新しく作成した画像をプロットします。
(color_wheel.bmp)
RGB と HLS/HSV との間の変換: 画像全体
上記の関数を使用して、RGB 画像と HLS/HSV 画像との間で変換を行えます。
1. RGB 画像を読み込みます。
(strike_rgb.bmp)
2. RGB 画像を HLS と HSV に変換します。
(strike_hls.bmp) | (strike_hsv.bmp) |
3. HLS 画像と HSV 画像を RGB に再び変換します。
(strike_rgb2.bmp) | (strike_rgb3.bmp) |