画像のインポートImporting-Images
Import ImageImage ImportImpImageXファンクションは、スクリプトを使って画像ファイルをOriginにインポートします。 デフォルトで、画像ファイルはOriginに画像(RGB値など)として保存されます。 その画像をグレースケールに変換するオプションがあります。
Multiple-file importing is supported.デフォルトで、複数の画像ファイルは、新しいレイヤを作成して、目的のページに追加されます。 行列にインポートする場合、各行列のレイヤはインポートするファイル名になります。
行列に画像をインポートしデータに変換する
このサンプルは、1つの画像ファイルを行列にインポートし、(RGBカラー)画像をグレースケールに変換し、それらを新しい行列に保存します。
newbook mat:=1; // 新しい行列ブックを作成
fpath$ = "Samples\Image Processing and Analysis\car.bmp";
string fname$ = system.path.program$ + fpath$;
// アクティブウィンドウにパス 'fname$' のイメージをインポート
//(新しい行列ブック)
impimage;
// イメージをグレースケールに変換し、新しい行列に入れる
// 'type' はビット深度を指定。 0=short (2バイト/16ビット、デフォルト)
// 1=byte (1バイト/8ビット)
img2m type:=byte;
1つの画像を行列にインポートする
このサンプルは新しい行列ブックに一連の *.TIF画像をインポートします。 上記で示した img2m Xファンクションの代替として、キーボードショートカット Ctrl+Shift+d と Ctrl+Shift+i を使って、行列データと画像データの表示を切り替えることができます。
newbook mat:=1;
fpath$ = "Samples\Image Processing and Analysis\";
string fns, path$ = system.path.program$ + fpath$;
// 「myocyte」からはじまるファイル名のファイルを検索
findfiles f:=fns$ e:="myocyte*.tif";
// 各ファイルを新しいシートにインポート (options.Mode = 4)
impimage options.Mode:=4 fname:=fns$;
複数の画像を行列ブックにインポートする
このサンプルは、JPG画像のフォルダを異なる行列ブックにインポートします。
string pth1$ = "C:\Documents and Settings\All Users\"
string pth2$ = "Documents\My Pictures\Sample Pictures\";
string fns, path$ = pth1$ + pth2$;
// すべての *.JPG ファイルを探す (デフォルトで、「path$」にある)
findfiles fname:=fns$ ext:="*.jpg";
// 見つかったファイル数をint変数「n」に割り当てる
// 「CRLF」 ==> ファイルを「carriage-return line-feed」で分ける
int n = fns.GetNumTokens(CRLF);
string bkName$;
string fname$;
// すべてのファイルをループし、それぞれを新しい行列ブックにインポート
for(int ii = 1; ii<=n; ii++)
{
fname$ = fns.GetToken(ii, CRLF)$;
//新しい行列ページを作成
newbook s:=0 mat:=1 result:=bkName$;
//行列ページの最初のレイヤにイメージをインポート
//デフォルトのファイル名はfname$
impimage orng:=[bkName$]msheet1;
}
画像をグラフレイヤにインポートする
既存のグラフレイヤに画像をインポートすることもできます。 この画像は表示のためだけのものです。(行列に変換しなければ、データは表示されません。)
string fpath$ = "Samples\Image Processing and Analysis\cell.jpg";
string fn$ = system.path.program$ + fpath$;
insertImg2g fname:=fn$ ipg:=graph1;
|