目次

モノクロ変換

 HSPでは、画像データを入力するには、組込みプロシージャ
  picload
 を利用します。

 この組込みプロシージャを使い、画像を入力し
 表示するHSPコードは、以下。
-----------------------------------------------------------
; set screen dimensions
 screen 0,640,480

; get image
 picload "NEC_0105.JPG",1

 stop
-----------------------------------------------------------

 携帯電話のカメラで撮影した、リゾートの看板を
 表示してみると、次のようになります。




RGB成分取得

 コンピュータの中では、画像データをR(Red)、G(Green)、B(Blue)の  各成分を8ビットに分割して扱っています。  実際には、8ビットx4=4バイトとして扱います。  4バイト中1バイトは、輝度に当てて使います。  8ビットx3で、どの程度の色を表現できるかを計算すると   256x256x256=16,777,216  になります。  人間の目では、仔細を判読できないほどの色数になります。  HSPでは、画像データの1ピクセルあたりの色情報を、RGBの3成分に  分けて取得します。   ginfo(16)   ginfo(17)   ginfo(18)  を利用します。  ginfoは、多分「GraphicINFOrmation」の略でしょう。  R、G、Bをそれぞれ指定するために、パラメータ16、17、18  を指定します。  ginfoは、単独利用ではなく、組込みプロシージャ   pget  と対にします。  pgetで、ピクセル位置をを指定後、情報を取得します。  次のコードで、色情報を取得できます。    ; get informations of current pixel    pget i,j    ; get color informations    r = ginfo(16)    g = ginfo(17)    b = ginfo(18)

変換式

 画像をカラーからモノクロに変換するには、様々な方法があります。  最も簡単なのは、アナログテレビの中で使われている回路で  使われている変換式を応用します。  モノクロの場合は、カラーのRGB各成分の情報を輝度に変換して  足し算します。変換式は、人間の視覚特性を考慮して、次のように  定義しています。   s = 0.299 * r + 0.587 * g + 0.114 * b  この変換式は、RGBの各成分の最大値を100とした場合なので  8ビットの最大値255にするには、次の計算します。   s = 77 * r + 151 * g + 28 * b   s = s / 256  浮動小数点で計算しても、整数に変換しなければならないので  整数で計算して、結果を256で割った商を使います。  上の変換式を利用した、モノクロ変換のアプリケーション  コードは、次のようになります。 -----------------------------------------------------------  title "Make grayscale" ; set screen dimensions  screen 0,640,480 ; constants  ylast = 480  xlast = 640 ; get image  picload "NEC_0105.JPG",1  gosub *convert_gray  stop *convert_gray  ; raster  for j,0,ylast,1   ; pixel   for i,0,xlast,1    ; get informations of current pixel    pget i,j    ; get color informations    r = ginfo(16)    g = ginfo(17)    b = ginfo(18)    ; conversion    s = 77 * r + 151 * g + 28 * b    s /= 256    ; set color    color s,s,s    ; show    pset i,j   next  next  return  end -----------------------------------------------------------  携帯電話で撮影した、カラー画像をモノクロに変換してみると  次のようになります。  モノクロ画像にすると、どこで反射が起きているのかが  わかります。  動物の中には、色盲である犬や猫がいます。  多分、食料を確保する場合に、色情報を使わないで  姿、形、光やそれまでに獲得した知識を合わせてる  のでしょう。

目次

inserted by FC2 system