ImageJでフォルダ内の画像をFFTを行い、すべてのFFT画像の積をとった画像を出力するマクロ。
// FFT画像の積をとるための変数を定義
var fftProduct = null;
// フォルダ内の画像を列挙する
var dir = "C:\\images\\";
var list = getFileList(dir);
for (var i = 0; i < list.length; i++) {
// 画像を開く
var path = dir + list[i];
open(path);
// FFTを実行
run("FFT");
// FFT画像の積を計算
if (fftProduct == null) {
// 最初の画像の場合はそのまま代入
fftProduct = getImageID();
} else {
// 2番目以降の画像の場合は積を計算
imageCalculator("Multiply create", fftProduct, getImageID());
fftProduct = getImageID();
}
}
// FFT画像の積を出力
if (fftProduct != null) {
selectImage(fftProduct);
saveAs("PNG", "C:\\fftProduct.png");
}
上記のマクロを使用するには、以下の手順で実行します。
ImageJを起動します。
マクロウィンドウを開きます。「File > New > Macro」からマクロウィンドウを開くことができます。
上記のマクロをコピーし、マクロウィンドウに貼り付けます。
マクロ内のvar dir = "C:\\images\\";という行を、画像が保存されているフォルダへのパスに書き換えます。 5. マクロ内のsaveAs("PNG", "C:\\fftProduct.png");という行を、出力するFFT画像の積の画像の保存先とファイル名を指定します。
マクロウィンドウで、「Run」をクリックしてマクロを実行します。
これで、指定したフォルダ内の画像をFFTを行い、すべてのFFT画像の積をとった画像を出力することができます。