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");
}

上記のマクロを使用するには、以下の手順で実行します。

  1. ImageJを起動します。

  2. マクロウィンドウを開きます。「File > New > Macro」からマクロウィンドウを開くことができます。

  3. 上記のマクロをコピーし、マクロウィンドウに貼り付けます。

  4. マクロ内のvar dir = "C:\\images\\";という行を、画像が保存されているフォルダへのパスに書き換えます。 5. マクロ内のsaveAs("PNG", "C:\\fftProduct.png");という行を、出力するFFT画像の積の画像の保存先とファイル名を指定します。

  5. マクロウィンドウで、「Run」をクリックしてマクロを実行します。

これで、指定したフォルダ内の画像をFFTを行い、すべてのFFT画像の積をとった画像を出力することができます。

いいなと思ったら応援しよう!