カラーピクセル画像

カラー画像は、color-pixel-imageクラスで表現される。 このクラスは、3つのpixel-imageを持っており、RGB表現の red,green,blueあるいはHLSモデルの色合い,明るさ,濃さをそれぞれ表現する。 RGBとHLS間の変換もサポートしている。


color-pixel-image [クラス]


  :super   propertied-object 

:slots width height component1 component2 component3


3つのpixel-imageオブジェクトでカラー画像を表現する。


:width [メソッド]

この画像の幅を返す。


:height [メソッド]
この画像の高さを返す。


:size [メソッド]
この画像の幅$\times$高さを返す。


:red [メソッド]
component1を返す。


:green [メソッド]
component2を返す。


:blue [メソッド]
component3を返す。


:hue [メソッド]
component1を返す。 色合い(hue)の値(0~360)は、0~255の1バイトで表現される。


:lightness [メソッド]
component2を返す。 正規化された明るさ(brightness)の値(0~1)は、0~255の整数で表現される。


:saturation [メソッド]
component3返す。 正規化された濃さ(saturation)の値(0~1)は、0~255の整数で表現される。


:pixel x y [メソッド]
(x,y)における component1,component2,component3の値を3つの整数のリストとして返す。 このリストは、RGB値あるいはHLS値のどちらでも解釈できる。


:monochromize &optional (NTSC nil) [メソッド]
RGB構成から明るさを計算し、新しいpixel-imageを返す。 もし、NTSCがNILなら、(R+G+B)/3が計算される。 もし、Tなら、0.299*R+0.587*G+0.114*Bが計算される。


:HLS [メソッド]
この画像をRGB画像と仮定し、HLS表現に画像を変換する。 それぞれのピクセルを変換するためにRGB2HLSを呼び出す。


:RGB [メソッド]
この画像をHLS画像と仮定し、RGB表現に画像を変換する。 それぞれのピクセルを変換するためにHLS2RGBを呼び出す。


:halve [メソッド]
この画像を半分のサイズに縮小したcolor-pixel-imageを返す。


:display &optional (win *color-viewer*) [メソッド]
:putimageを用いてwinで指定されるXwindowに このカラー画像を表示する。 それぞれのピクセル値はXのカラーマップを参照する。 希望する表現を得るためには、この画像を固有のLUTで 変換すべきである。


:display-lut &optional (newlut1) (newlut2 newlut1) (newlut3 newlut2) [メソッド]
ルックアップテーブルnewlut1,newlut2,newlut3display-lutにそれぞれ設定する。それから、このルックアップテーブルを 使ってこの画像を変換し、xpictureに設定する。



\begin{emtabbing}
{\bf :edge1}
\it\&optional \= (method 1) \\lq  [メソッド]\ ...
...
\> (run *edge-length-threshold*)\\
\> (win *color-viewer*)
\rm
\end{emtabbing}
この画像のエッジを抽出する。Xwindow上にこのエッジ画像を表示する。


:hex &optional (x 0) (y 0) (w 16) (h 16) (strm t) [メソッド]
四角領域で指定されるピクセルデータを16進数フォーマットで表示する。


:hex1 &optional (x 0) (y 0) (w 64) (h 16) (strm t) [メソッド]
四角領域で指定されるピクセルデータを16進数フォーマットで表示する。


:prin1 strm &rest msg [メソッド]
この画像を名前と次元と一緒に表示する。


:init width height &optional r g b [メソッド]
カラー画像のサイズを定義し、pixel-imageにそれぞれカラーの1構成 を割り当てる。


ppmファイルがあったとき、次のプログラムでカラー値を画像に展開し、 Xwindowに表示をすることができる。

(setq ppmimg (read-pnm "xxx.ppm"))
(send ppmimg :hls)   ; RGB to HLS conversion
(make-ximage (send ppmimg :hue) *rainbow32*)

k-okada 2013-05-21