mikeo_410


colorspaceパッケージのLab

  Lab に注目したのは、色差が計算できる点です。

  R言語のcolorspaceパッケージの LAB は、L*[0..100]、a*[-100..100]、b*[-100..100] と説明があります。しかし、この全域が表示可能なRGBに対応するわけではないので有効範囲のイメージが知りたいと思いました。
  L*a*b* の概要は、a*=b*=0 がグレーで、このときL*=0は黒、L*=100は白を表します。
  a* は、緑から赤への変化、b*は、青から黄への変化を表します。

  ここにある3枚の図は、b* を-30,0,30に固定して、L* と a* の関係を図示したものです。

  b=0の図のa*=0の縦の線はグレーを表し、下が黒、上が白になる箇所です。

  b=-30の図は、青色側へ少しずれた箇所です。
  b=30の図は、黄色側へ少しずれた箇所です。
 

 

  ここにある3枚の図は、a* を-30,0,30に固定して、L* と b* の関係を図示したものです。

  a=0の図のb*=0の縦の線はグレーを表し、下が黒、上が白になる箇所です。

  a=-30の図は、緑色側へ少しずれた箇所です。
  a=30の図は、赤色側へ少しずれた箇所です。
 

 

  この図は、L*に水平な面を示しています。前述の図から、有効範囲が広そうなL*=60を描きました。

  前述の図を上から(あるいは下から)見た状態です。

  縦が、a*軸で、下が緑、上が赤です。

  横が、b*軸で、左が青、右が黄です。

  「色」に、もう少し図があります。

  この図は、下記のR言語のスクリプトで描きました。
  L,a,bの入れ替えや図のタイトル軸名を書き換えながら作りました。
  R言語の色の扱いは、「色の扱い」を参照ください。
  いったんRGBを#で始まる16進文字列に変換していますが、「colorspaceパッケージのRGB」を参照ください。 

  1. bm <- matrix(0, nrow=3,ncol=201*101)
  2. a = 0
  3. i <- 1
  4. for(L in 100:0)
  5. {
  6.   for(b in -100:100)
  7.   {
  8.     rgb <- col2rgb(hex(LAB(L,a,b)))
  9.     bm[,i] <- c(rgb[1],rgb[2],rgb[3])
  10.     i = i + 1
  11.   }
  12. }
  13. windows(4,4)
  14. par(mar=c(4,3,3,2))
  15. bm_image(bm,201,101,main="Lab a=0")
  16. axis(1,c(0,100,200),labels=c("-100","0","100"))
  17. axis(2,c(0,50,100),labels=c("0","50","100"))
  18. mtext("b",1,line=2,font=2)
  19. mtext("L",2,line=2,font=2)

 

 

 

 

 

 


石川県 不動産 田園都市線 不動産 Web制作 川崎市 不動産 リフォーム