【问题标题】:How can I measure the height of the plant in the given picture? [duplicate]如何测量给定图片中植物的高度? [复制]
【发布时间】:2026-01-04 11:50:02
【问题描述】:

我附上了我的照片,随着时间的推移,我有很多同一种植物的照片,但所有照片的角度都是一样的,这是因为相机被固定在一根可以俯瞰这些植物的杆子上。从这张图片中,我想通过计算相机和黄点(即植物的尖端)之间的距离减去相机和红点(即地面上的一个点)之间的距离来知道植物的高度,在短植物中:

height = dist(camera,yellow spot)-dist(camera,red spot)

我浏览了 MATLAB 文档和许多论文,但我无法弄清楚如何获得相机与图像中那些红色和黄色斑点之间的距离。请有人给我解释一下。我为此苦苦挣扎了好几天。

【问题讨论】:

  • 你能把图片和代码显示在大家都可以看到的地方吗,到目前为止你都尝试过什么?
  • 没有翻译就无法恢复深度。你最好发一张图片,我不知道,你的情况可能不同。
  • 我认为 OP 不能包含声誉低于 10 的图像,因此投票只会让事情变得更糟。
  • 错误404:找不到图片和代码

标签: image matlab image-processing computer-vision camera-calibration


【解决方案1】:

正如 cagatayodabasi 在 cmets 中指出的那样,不能以这种方式完成:

1 - 您必须水平平移相机并拍照并获得 2 个不同的视角,

2- 使用两个摄像头,更好地在水平轴上对齐。

在任何情况下,您都必须使用立体声系统。也许this link in Mathworks 可以帮助你。

在任何情况下,您都应该首先进行相机校准,然后进行视差计算,这与相机的距离密切相关,这是(或应该是)您的“比例因子”(距离越大,越小高度被感知)。

事实上,如果你在植物的顶部有一个黄点(我试图理解你的方法),在底部有一个红点,你得到的差异是植物的“表观高度”以像素为单位,但不是真正的高度(取决于我上面提到的比例因子)

“点距离”方法在没有图像的情况下是不清楚的,但也许(正如 Mark Setchell 指出的,如果您不能发布图像)您可以链接论文或从您那里获得代码灵感的页面。

【讨论】:

    最近更新 更多