我需要测量用户的墙壁距离。当用户打开相机并指向任何表面时,我需要获得距离。我已经阅读了一些链接是否可以用相机测量到物体的距离?我使用代码从这里http://blog.sallarp.com/iphone-accelerometer-device-orientation找到iphone相机角度。
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
// Get the current device angle
float xx = -[acceleration x];
float yy = [acceleration y];
float angle = atan2(yy, xx);
}
d = h * tan angle
But nothing happen in the nslog and camera.
答案 0 :(得分:1)
在评论中,您分享了视频的链接:http://youtube.com/watch?v=PBpRZWmPyKo。
该应用程序没有对相机进行任何特别复杂的操作,而是使用基本三角函数计算距离,并通过以几种关键方式约束业务问题来实现此目的:
首先,该应用要求用户指定手机相机镜头的握持高度。
其次,用户正在测量与地面上某些东西的距离,并将其底部与屏幕上的某个已知位置对齐(这意味着您有一个直角三角形)。
这两个限制,加上加速度计和相机的镜头焦距,可以让你计算距离。
如果你的目标十字准线位于屏幕的中心,它可以大大简化问题,它就变成了简单的三角函数问题,即你的d = h * tan(angle)
。
答案 1 :(得分:-1)
唯一可行的方法是,如果你能读出镜头中自动对焦机制的设置。据我所知,这是不可能的。