画像処理

 

RGBイメージ行列

行列は、表示する行と列がいくつあるかという情報を含みますが、それは線形配列として内部的に格納されています。そのため、行列からワークシート列にデータをコピーし、以下のことが行えます。

  1. 画像ファイルをインポート
  2. 赤、緑、青(RGB)チャネルを抽出(行列から行列)
  3. チャネルデータをコピー(行列から列)
  4. RGB値の文字列表現を構築
// サンプル画像を指定してインポート
fname$ = SYSTEM.PATH.PROGRAM$ + "Samples\Image Processing and Analysis\Flower.jpg";
impImage;
// RGB を別々の赤、緑、青の行列に分割
imgRGBsplit r:=[RGBOUT]RED!1 g:=[RGBOUT]GREEN!1 b:=[RGBOUT]BLUE!1;
// 新規ワークブックを作成
newbook;
wks.ncols = 4;
wks.col1.lname$ = Red;
wks.col2.lname$ = Green;
wks.col3.lname$ = Blue;
wks.col4.lname$ = RGB;
// ワークシート範囲
range raDR = 1, raDG = 2, raDB = 3;
// 行列範囲
range raR = [RGBOUT]RED!1;
range raG = [RGBOUT]GREEN!1;
range raB = [RGBOUT]BLUE!1;
// 範囲の割り当てによって行列から ワークブックにデータをコピー
raDR = raR;
raDG = raG;
raDB = raB;
// RGBトリプレットを示す文字列を作成
col(D) = col(1)$ + " " + col(2)$ + " " + col(3)$;