Arrays ImageJ从数组中获取值

Arrays ImageJ从数组中获取值,arrays,macros,matching,imagej,Arrays,Macros,Matching,Imagej,我正在尝试将图像文件与数组中的特定行进行匹配。 在第一步中,我选择一个包含tif文件的文件夹。 然后我选择一个csv文件,其中包含我想要使用的信息。 我一个接一个地打开每个图像。对于打开的图像,我想从csv文件中对应图像名称的行中检索值。CSV文件的标题是FileName、XValue、YValue 这是我到目前为止的代码。。。任何帮助都将不胜感激 //弹出窗口选择输入目录 InputDirPath=getDirectory(“选择输入目录”); //获取上面选择的输入目录中作为数组的文件列表

我正在尝试将图像文件与数组中的特定行进行匹配。 在第一步中,我选择一个包含tif文件的文件夹。 然后我选择一个csv文件,其中包含我想要使用的信息。 我一个接一个地打开每个图像。对于打开的图像,我想从csv文件中对应图像名称的行中检索值。CSV文件的标题是FileName、XValue、YValue

这是我到目前为止的代码。。。任何帮助都将不胜感激

//弹出窗口选择输入目录
InputDirPath=getDirectory(“选择输入目录”);
//获取上面选择的输入目录中作为数组的文件列表
InputFileList=getFileList(InputDirPath);
//定义单元格分隔符和行分隔符
单元格分隔符=“,”;
LineSeparator=“\n”;
//以字符串形式打开csv文件
FileCCValuesPath=File.openDialog(“选择包含坐标的文件”);
FileCCValuesString=File.openAsString(FileCCValuesPath);
//将每行拆分为一个数组
FileCCValuesRows=拆分(FileCCValuesString,LineSeparator);
//为列和每行的内容创建新数组
FileNameArray=newArray(FileCCValuesRows.length);
XValueArray=newArray(FileCCValuesRows.length);
YValueArray=newArray(FileCCValuesRows.length);
//开始循环,遍历上面选择的输入文件夹中的图像文件列表
对于(Filei=0;Filei
您可以为循环(打开当前图像后)添加另一个
,该循环遍历所有行并检查行是否以当前图像名称开头,然后拆分当前行以获得x和y值:

for(i=0;i
请注意,“ImageJ”的方法是在结果表中打开CSV文件,并使用和宏函数获取所需的值。以下是使用以下各项的宏版本:

//弹出窗口选择输入目录
InputDirPath=getDirectory(“选择输入目录”);
//获取上面选择的输入目录中作为数组的文件列表
InputFileList=getFileList(InputDirPath);
//在结果表中打开csv文件
FileCCValuesPath=File.openDialog(“选择包含坐标的文件”);
打开(FileCCValuesPath);
//开始循环,遍历上面选择的输入文件夹中的图像文件列表
对于(Filei=0;Filei
非常感谢您的回复 这就是我最终要做的:

1-使用

FileValuesRows=split(FileValuesString,LineSeparator);
2-为每列创建新数组(由于标题,我删除了一行)

Column1Array=newArray(FileValuesRows.length-1);
Column2Array=newArray(FileValuesRows.length-1);
3-创建一个for循环,用于筛选每一行并将其拆分为每一列(由于标题的原因,从1开始)


for(Rowi=1;rowii如果我理解正确,IamgeJ不会处理高于1维的数组,除非我们在结果窗口中打开它们?太好了!正如我在回答中指出的,使用ImageJ自己的结果表可以避免您手动填充列数组,因此您可以省略步骤2、3和4。