【问题标题】:How to measure height, width and distance of object using camera? [closed]如何使用相机测量物体的高度、宽度和距离? [关闭]
【发布时间】:2012-01-31 16:52:22
【问题描述】:

我参考了很多链接,但我仍然无法从中获得任何可以开始我的开发的点。我想用相机测量我的图像高度、宽度和距离。我找到了这个 app 。我想让这种类型的应用程序不完全相同但完全相同,但出于我的要求,我想使用相机测量我的图像高度、宽度和距离。

任何人都可以给我/建议我正确的方式或任何示例,以便我可以对这个要求有更多的了解。

我试过这个:

http://android-er.blogspot.in/2012/04/gets-distances-from-camera-to-focus.html

【问题讨论】:

  • 如果您找到了任何解决方案,请您将源代码邮寄给我,以查找任何对象的距离、宽度和高度。好吗??
  • 我也面临同样的问题。请帮助我。如果有任何想法。在此先感谢..
  • 你找到解决办法了吗?

标签: android camera android-camera


【解决方案1】:

我想我知道你要什么。这是你可以做的。

先得到人的身高说h米。

如果您可以计算相机距地面的高度(如果人即 h,则使用高度)并使用陀螺仪或来自 android 的东西获得角度 A 和 B,那么您可以使用上述公式计算对象的高度。

这不是你要找的吗???

如果您需要任何解释,请告诉我。

【讨论】:

  • 它在安卓上有效吗?我试过但没有工作?如果您有示例演示,您可以上传一些可以帮助其他人的地方.. :)
  • 计算“h”值真的很难——没有API!
  • 不需要 api。使用数学公式计算 H。 “h”是您必须根据人的身高假设的值。也许将人的身高作为输入。
  • 这实际上在 iOS 中有效。我得到了用户与物体的距离,并用它来计算物体高度的上半部分。
  • 当物体本身以未知角度倾斜时会怎样?
【解决方案2】:

要使用单个相机测量距离,您需要知道一些数字。要测量某物的高度,比如说一把椅子,您唯一拥有的就是它在相机中的大小(以像素为单位,可以使用屏幕大小转换为英寸),仅此而已。测量高度和宽度的机会是使用参考,例如站在椅子旁边的 6 英尺高的人。

通过这种方式,您可以使用一个 10 英尺高的物体进行反向计算,使用它在相机中出现的大小,您可以在不平坦的表面上计算出相同距离处物体的大小,甚至确保它们保持相同的距离是一项挑战。

因此,仅使用相机并仅使用相机,这是不可能的。您需要以某种方式知道距离,或者需要参考。

如果您使用该应用程序测量您知道位置的物品的高度,然后使用 GPS,您可以找到距离,剩下的就是数学。

我使用 Google 找到了一些链接,它们可能会有所帮助。

  1. http://forestjohnson.blogspot.com/2010/01/how-to-measure-size-of-object-using.html
  2. http://gigaom.com/mobile/how_to_measure_/
  3. http://www.iphonelife.com/blog/5/cameasure-use-your-camera-measure-size-or-distance

它们可能会帮助您找出除了相机可以提供的信息之外还需要哪些其他信息,以便您可以考虑您的应用程序以及可以做什么以及有哪些限制。

一种方法是使用多个相机,并且可以使用在已知距离外拍摄的多张照片进行补偿。所以应用程序可以要求用户拍摄多张图像,使用 GPS 跟踪距离,并且它可能可以工作。

也请查看这些链接:

  1. http://iopscience.iop.org/1742-6596/48/1/074/pdf/1742-6596_48_1_074.pdf
  2. http://www.optical-metrology-centre.com/Downloads/Papers/Photogrammetric%20Record%201994%20Automated%203-D%20measurement.pdf

【讨论】:

    【解决方案3】:

    如果您知道相机的视口角度,则可以使用高度(以像素为单位)来确定对象从顶部到底部的角度。然后,使用距离和反正切计算高度:

    height = arctan(angle) * distance
    

    要找到视口角度,请将相机对准已知高度的物体,并使其完全填满屏幕。例如,将它指向一把尺子,让它离得足够远,以至于你几乎看不到尺子的末端。测量与相机的距离,然后您的总视口角度为

    viewportAngle = tan(ruler_length / distance)
    

    然后,假设您的相机高 480 像素(便宜的网络摄像头),视角为 20°。如果屏幕上有一个 240 像素高的对象,那么它的角度是 10°。如果您知道它在 2 英尺外,您会说 2 feet * arctan(10°) = ~4.1 inches 高。 (我想……现在是凌晨 2 点,所以可能有点偏)

    【讨论】:

    • 很好,但正如@Péter Varga 所指出的,您需要知道与物体的距离。
    • 似乎应用程序使用加速度计来测量与物体底部的角度,然后假设手机离地高度(通常约为 5 英尺)来测量距离。你可以这样做,但它不会特别准确。
    • @Mansi 在编写任何代码之前,您应该首先了解使用的概念方法。 en.wikipedia.org/wiki/Inverse_trigonometric_functions
    • 你能给我任何与此相关的示例链接吗?所以我可以得到更多的想法,但我并不完全理解你的观点。
    【解决方案4】:

    如果您考虑一下,身体 X 射线扫描(在医疗中心)也需要这种测量来估计肿瘤的大小。所以他们在身体上放了一个 1 美元硬币,进行比较测量。

    连报纸的角上都印有一些标记。

    您需要参考来衡量。也许你可以让你的人戴上一顶有几个鲜绿色圆圈的帽子。一旦你认清了圆圈的大小,你就可以比较测量剩余的圆圈。

    或者您可以创建一个 1 英寸的透明圆圈,该圆圈将叠加在脸上,将相机移向/远离脸部,将叠加的圆圈对准帽子上的亮绿色圆圈。然后在您的照片上将按比例显示。

    【讨论】:

      【解决方案5】:

      你不能……你必须知道:

      • 物体有多远(您可以通过 GPS 知道您的位置……但物体的位置?)
      • 相机的焦距是多少

      也许,如果对象被光学标记,例如二维码,并且你有一个代码到位置的地图......

      【讨论】:

      【解决方案6】:

      首先,我会说开发这样的应用程序很好。

      现在我不确定,但如果您能够在 android 相机中为任何对象获得类似面部检测的功能,那么您可以借助它来实现这些功能。

      好吧,我不确定,但仍然有一些看法,以便您了解它。

      一切顺利。 :))

      【讨论】:

        猜你喜欢
        • 2017-05-26
        • 2013-05-24
        • 2015-11-22
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        • 2019-07-21
        • 1970-01-01
        • 2013-09-01
        相关资源
        最近更新 更多