ImpImageXファンクションは、スクリプトを使って画像ファイルを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;
このサンプルは新しい行列ブックに一連の *.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;