我目前正试图找出一种用kinect
计算给定对象大小的方法因为我有以下数据
镜头的角度视野 距离 和800 * 600分辨率的宽度(以像素为单位)
我相信这是可以计算的。有没有人有数学技能给我一点帮助?
答案 0 :(得分:3)
对于某些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是投影到物体平面中的像素的长度。你可以通过将天使的sin乘以与物体的距离来计算它。
在这里,我承认我不知道kinect的API,以及它提供的详细程度。你说你有视野的角度。您可能会认为800x600像素网格的每个像素占据了相机视野的相等角度。如果你这样做,那么你可以将视野分成相等的部分,以测量每个像素中物体的线性尺寸。
您还提到您与物体的距离。我假设你有一个800x600网格的每个像素的距离图。如果这是不正确的,如果您对被测对象做出一些假设,可以进行一些计算来近似涉及感兴趣对象的像素的距离网格。