こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Image Jのマクロについて。

Image Jのマクロについて。

Image j初心者です。
現在、特定のフォルダ内にある複数枚の画像を同時に解析して、解析した結果をcsvファイルに保存する作業を行っています。
画像が大量にあるためマクロを組んで自動化したいのですが、「結果を”選択したフォルダ名.csv”という名前にして、特定の場所に保存する」というコードが書けません。

かみ砕いて書くと以下のような感じです。
・1つのフォルダ内に画像が複数枚ある。
・これらの画像を解析した結果は1つのcsvファイルに保存する(つまり1フォルダにつき1つのcsvファイルが生まれる)。
・このようなフォルダが複数あり、それぞれのフォルダ名とcsvファイル名を対応させたい。
・こうしてできた複数のcsvファイルをある特定のフォルダ内にまとめて保存したい。

どなたかご存知の方、よろしくお願いいたします。



ちなみに現在のコードはこのような感じです。
色々なサイトのコードを貼り付けているだけなので、自分でも一つ一つのコードが何を意味しているのかはわかりませんが、
1.解析したい画像群のフォルダを選択する。
2.これらの画像をまとめて解析する。
3.解析した結果を表示する。
というところまでは自動でできています。
      

//Do something for selected folder
showMessage("Select Open Folder");
openDir = getDirectory("Choose a Directory");
showMessage("Select Save Folder");
saveDir = getDirectory("Choose a Directory");
list = getFileList(openDir);

for (i=0; i<list.length;i++){
operation();
};
print("Macro Finished");

//Define operations
function operation(){

open(openDir+list[i]);

name = getTitle;
dotIndex = indexOf(name, ".");
title = substring(name, 0, dotIndex);

run("8-bit");
setAutoThreshold("Intermodes dark");
//run("Threshold...");
setOption("BlackBackground", true);
run("Convert to Mask");
run("Watershed");
run("Analyze Particles...", "size=5-Infinity display include add");

newname = title+"_analyzed_.jpg";
rename(newname);
saveAs("Jpeg", saveDir+newname);

close(newname);

}

投稿日時 - 2019-03-01 18:24:15

QNo.9592624

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

質問文のコードをざっと見た感じでは。


既存のほとんどの変数は文字列データのようですね。
「"」でくくったものは文字列として扱われ、
「+」で文字列の結合ができる模様。

getDirectory が返すデータは
 The returned path ends with a file separator
だそうですので、出力csvファイル名は入力ファイルのディレクトリ(=フォルダ)パスから末尾のディレクトリ区切り文字とその一つ前の区切り文字の間にある文字列を切り出せばいいようです。

文字列の切り出しは substring ででき、文字列の中から文字を探すには indexOf関数が使えます。末尾から走査する lastIndexOf というのがあるそうなので、これを使えばより簡潔に書けそうです。文字列長は lengthOf でも調べられるようなのでこれを使ってもいいでしょう。

以上の組み合わせで実現できそうですね。
print(文字列); は文字列を "Log" window に出力する関数だそうですので、
所望のパス名にできたか予め検証できるでしょう。



参考
[1] https://imagej.nih.gov/ij/developer/macro/functions.html
 Built-in Macro Functions
 substring imagejでぐぐって上位に出た公式らしきページ。
 String Functions の項も一通り参照。
[2] http://www.tohoho-web.com/ex/draft/path.htm
 パス名について - とほほのWWW入門

投稿日時 - 2019-03-04 12:49:10

あなたにオススメの質問