我如何从知道像素分辨率,焦距和相机高度的照片开始计算R中的叶子面积?

时间:2018-11-21 19:34:05

标签: r image-processing area

我正在寻找一种自动方法来从普通相机拍摄的照片中测量叶子面积。我想使用手机摄像头,因为这样可以使工作更轻松。我可以使用ImageJ,但我相信可以有更快的方法。

到目前为止,我知道以下功能:

  • 像素分辨率(3042 x 4032)
  • 相机的焦距(等效于26毫米)
  • 相机传感器(7.01 mm x 5.79 mm)
  • 相机高度(25厘米)

我之所以要求R,是因为我一直在研究R,而且我不会更改软件。 我尝试了一些软件包,例如EBIimage和magick,但没有走那么远。我可以加载图片,但无法根据像素数进行任何计算。

有人尝试过在R中做类似的事情吗?

请发表评论并回答。

谢谢。

2 个答案:

答案 0 :(得分:1)

如果要测量叶面积,建议使用LeafByte。它是适用于iPhone和iPad的免费开源应用程序。它比ImageJ和相关软件更快地测量叶面积和草食动物水平,并且非常易于使用。它还会自动将数据保存在电子表格中。 您可以在应用商店中下载它,或在下面的网站上阅读有关LeafByte的更多信息。您还可以在FAQ页面中找到在现场无损测量叶子的方法。

https://zoegp.science/leafbyte

https://zoegp.science/leafbyte-faqs

免责声明-我参与了此应用的制作,但是由于它是免费的,因此我从使用中不会赚钱。

答案 1 :(得分:0)

使用校准器。

  1. 拿三张(或更多)不同面积的纸。
  2. 然后以相同的距离(25厘米)*拍摄纸张。
  3. 计算每张纸的像素面积。
  4. 按每张纸的像素区域划分度量标准区域。我们称这个数字为k。
  5. 计算平均值k。
  6. 使用以下公式计算叶子的度量标准区域:metric_area = k * pixel_area。

*您也可以将校准器用于距叶子的不同距离。这有点复杂,但可能比计算更精确。

请注意,焦距为26mm的镜头在图像的边缘会有些变形。如果使用50毫米或以上的镜头,效果会更好。否则,请始终将叶子在图像上居中,并在叶子周围留一些空间。

这就是我要做的。我会使用Python和scikit-image而不是R,我发现它更易于记录,并且更好地用于图像分析。