如何在imageJ中自动获取图像的比例

时间:2019-07-09 16:41:37

标签: automation scale imagej

我需要测量大量叶子中的叶子面积。问题在于,由于每个图像都是用不同高度的相机拍摄的,因此比例不同。在每张纸旁边,放一张方格纸作为刻度。

ImageJ是否有任何方法/宏来自动获取每个图像的比例尺?

另一方面,可以自动计算图纸的面积吗?

https://i.imgur.com/xhuet52.jpg

https://i.imgur.com/XBsTU8a.jpg

谢谢!

我知道如何手动进行:例如选择等于1厘米的10个正方形,然后应用“设置比例尺”。然后我施加阈值并测量面积。但是我有1200张图像需要分析...

1 个答案:

答案 0 :(得分:0)

原则上可以自动分析它们,但我认为最终仍然需要进行某种形式的手动跟踪。也许这将有助于加快速度。当我没有弄乱任何东西时,这应该一个接一个地打开文件夹中的每张图像,提示您画一条线,然后设置比例并将生成的比例图像保存在输出文件夹中。仍然是手动的,但我认为应该明显更快。

input = getDirectory("");
output = input + "output" + File.separator;
    File.makeDirectory("");
list = getFileList(input);

for (i=0; i<list.length; i++) {

    open(input+list[i]);
    waitForUser("Draw Scale Line");
    getLine(x1, y1, x2, y2, lineWidth)
    distX = pow(x1-x2, 2);
    distY = pow(y1-y2, 2);
    distSUM = distX + distY + distZ;
    lengthScale = pow(distSUM, 0.5);
    run("Set Scale...", "distance="+lengthScale+" known=10 pixel=1 unit=cm");
    saveAs("Tiff", output+list[i]);
    close();
}