TIFの画像にCalibrationを掛ける事をマクロで行いたいと思います。
とりあえず、Record機能を使って手順を記録し、それを元に編集して使う事としました。
記録されたマクロコマンドは、
”run("Calibrate...", "open=[ キャリブファイル ] function=[ ファンクション ] unit=[ 単位 ] text1=[ 値リスト1 ] text2=[ 値リスト2 ] show");”
と言うものです。
”キャリブファイル”は事前に値リスト1と値リスト2を用いてCalibrationを実行していて、それを保存したものです。
つまり、キャリブファイルには値リスト1と値リスト2の値は保存されているにも関わらず、以降のtext1,text2で入力しています。2度手間の様に思い、text1,text2の項を省くとCalibrationの一列目と二列目の値が無いとのエラーになります。
これでは、何の為に”open=[filename]”の項でキャリブファイルを読み込んだか分かりません。
マクロで事前に保存したキャリブレーションファイルの使用方法を教えて戴けないでしょうか?
また、値リスト1、値リスト2を引数で渡した場合で、Calibrationが正常に終了します。キャリブレーションを掛けたTIF画像の方も、画像自体はそのままですが、"ImageJ"ウインドウの3段目(アイコン列の下)の画像上のマウス座標とそこのPixcel値がリアルタイムで表示されるところで、正しくキャリブレーション後の値と括弧の中にキャリブレーション前の値が併記されます。
念の為、”Save as ...”から”Text Image ...”で保存したテキストファイルにはキャリブレーション後の値で画像が出力されています。
しかしながら、マクロ上でこのキャリブレーションの前と後で同じ画像上の座標の値をgetPixel(x,y)で取得するといずれもキャリブレーション前の値で同じになります。
例、
value1 = getPixel( 100, 200 );
run( "Calibrate...", "open=[ ... ; <- 省略
value2 = getPixel( 100, 200 );
ここで、value1とvalue2の元々のvalue1の値で同じになっています。
この時、”ImageJ”ウインドウでの(100,200)値は、キャリブレーション後の値を示していて、括弧内の値でvalue1の値が表示されています。
なぜ、value2の値がキャリブレーション後の値にならないのでしょう?
上記2点、よろしくお願いします。 |
|