mecobalamin’s diary

人間万事塞翁が馬

ImageJのマクロでも

ImageJのマクロでもやってみた

mecobalamin.hatenablog.com

ImageJは画像処理ソフト
ImageJ - Wikipedia
気になる点もあるけど使い勝手がいい

NIHのダウンロードサイト
ImageJ

マクロのドキュメント
Macro Language
Built-in Macro Functions

書いたマクロがこれ

// ImageJのバージョンを指定する
// Arrayを使うのに必要
requires("1.42j");

// logのウィンドウをクリアする
print("\\Clear");

// 変数を定義
PPAPWord = newArray("Pen", "Pineapple", "Apple");
PPAPTrue = newArray("Pen", "Pineapple", "Apple", "Pen");
PPAPResult = newArray();
PPAPFlag = 0;

// 正しい単語の組み合わせができるまで繰り返す
while(PPAPFlag != 4){
  // 乱数を発生させて単語の組を作り配列に入れる
  for(i = 0; i < 4; i++){
    RandNum = round(abs(random("gaussian") % 2));
    PPAPResult = Array.concat(PPAPResult, PPAPWord[RandNum]);
  }

  // 発生させた配列と正解の配列を比較する
  for(i = 0; i < 4; i++){
    if(PPAPResult[i] == PPAPTrue[i]){
      PPAPFlag += 1;
    } else {
      PPAPFlag = 0;
    }
  }

  Array.print(PPAPResult);// print in log window
  PPAPResult = newArray();
}

print("PPAP!")

結果はlogのウィンドウに表示される
f:id:mecobalamin:20190714190607p:plain

shell scriptのときと同じで配列の比較が厄介
画像の処理だけなら使わないかもだけど。