【发布时间】:2011-08-12 13:28:25
【问题描述】:
我目前正在尝试找出一种使用 kinect 计算给定对象大小的方法
因为我有以下数据
镜头的视场角 距离 以及 800*600 分辨率的像素宽度
我相信这是可以计算出来的。有谁有数学能力可以帮我一点忙吗?
【问题讨论】:
-
您是在尝试获取感兴趣对象的横截面的平方英尺、线性尺寸,还是尝试恢复体积?
-
现在线性尺寸...也许以后我会尝试体积
我目前正在尝试找出一种使用 kinect 计算给定对象大小的方法
因为我有以下数据
镜头的视场角 距离 以及 800*600 分辨率的像素宽度
我相信这是可以计算出来的。有谁有数学能力可以帮我一点忙吗?
【问题讨论】:
有一些trigonometry,应该可以近似。
如果您绘制right trangle ABC,相机位于其中一条腿 (A),对象位于远端(边 BC),直角为 (C),则对象的高度将是腿BC的高度。到像素的距离可能是腿 AC 或 AB 的距离。 Kinect 传感器规格将对此进行规范。如果你得到一个像素中心的距离,那么它将是AC。如果您有到像素角的距离,那么距离将为 AB。
其中 A 表示像素在相机处所占据的角度,d 是直角斜边的距离,y 是远腿(边 BC)的距离:
sin(A) = y / d
y = d sin(A)
y 是投影到物平面的像素长度。你可以通过将天使的罪孽乘以到物体的距离来计算它。
在这里我承认我不知道 kinect 的 API,以及它提供的详细程度。你说你有视野的角度。您可能会假设 800x600 像素网格的每个像素占据相机视野的相同角度。如果这样做,那么您可以将该视野分成相等的部分,以测量对象在每个像素中的线性大小。
您还提到您与对象的距离。我假设您对 800x600 网格的每个像素都有一个距离图。如果这是不正确的,如果您对正在测量的对象做出一些假设,则可以进行一些计算来近似涉及感兴趣对象的像素的距离网格。
【讨论】: