【问题标题】:ImageJ: Analyze particles in different ROI at the same timeImageJ:同时分析不同 ROI 中的粒子
【发布时间】:2014-01-22 19:40:36
【问题描述】:

我正在测量不同年轮(树木;树木年代学)中的血管面积。我用大约 20 个年轮拍摄了高质量的照片。每个年轮都是我的投资回报率。

我将图像裁剪成 20 个较小的图像,每个年轮都是一个图像。我打开每张图像,将其设置为阈值并使用功能:分析粒子。

但是,如果我可以使用带有 20 个环的原始图像,那么耗时会少得多;我将通过定义 ROI 来分隔每个年轮,并在 2012 年、2011 年、2010 年之前标记每个 ROI……在我对图像进行阈值处理并使用函数分析粒子之后。在我的结果表中,我将分别获得每个年轮的每个血管的血管腔面积。

问题是:是否可以使用 ROI Manager 并设置更多的 ROI 并分析其中的粒子。

非常感谢您的宝贵时间。

杰尔尼

【问题讨论】:

    标签: imagej


    【解决方案1】:

    使用ROI Manager 存储您的投资回报率。然后使用ImageJ macro language 及其内置的roiManager functions 循环遍历所有ROI。通过 Plugins > Macros > Record... 记录您的分析以获取相关的宏命令。

    这是一个例子:

    id = getImageID();
    setAutoThreshold("Default");
    for (i=0 ; i<roiManager("count"); i++) {
        selectImage(id);
        roiManager("select", i);
        run("Analyze Particles...", "size=0-Infinity circularity=0.00-1.00 show=Masks clear");
    }
    

    要回答您在另一个答案中发布的其他问题

    • 您可以使用 Roi.getName() 获取当前 ROI 的名称,您可以使用它来命名结果文件:

      current = Roi.getName();
      saveAs("Results", "/path/to/results/Results_" + current + ".txt");
      
    • 或者,您可以通过在 Analyze > Set Measurements... 对话框中选中 Display label 在结果的每一行中包含当前 ROI 名称,从而生成一个类似这样的宏命令:

      run("Set Measurements...", "area display redirect=None decimal=3");
      

    在发布与 ImageJ 宏相关的任何新问题之前,请参阅 macro language documentationImageJ mailing list archives

    【讨论】:

    • 非常感谢您的帮助。明天我会咬这个宏。我相信这很容易,但我没有太多编程经验。但我相信它会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多