如何计算相机到目标的距离? (在Python中)

时间:2018-09-10 00:34:04

标签: python-3.x distance trigonometry

我正在尝试使用此公式来计算相机与地面之间的距离。

距离= D

相机高度= CH(米)

相机角度= CA

D = CH / cos(CA)

所以在代码中,我这样做是为了计算距离

colour

然后给我这个-2.1335083711460943。我不认为答案应该是否定的。到目标的距离大约是正确的,但不是2米的负值。

任何有关如何更好地做到这一点或我做错了什么的建议,将不胜感激。 谢谢

2 个答案:

答案 0 :(得分:1)

好cos(65度)= 0.42261826174,cos(65弧度)= -0.56245385123。

根据文档:

math.cos(x)
Return the cosine of x radians.

您需要先将度数转换为弧度。

cameraAngle = 65
cameraRadians = math.radians(cameraAngle)

然后在计算中使用cameraRadians而不是cameraAngle。

完整:

def findDistance(CH, CA):
    return CH / math.cos(CA)

#for test
cameraHight = 1.2 #In meter
cameraAngle = 65   #Degress angle
cameraRadians = math.radians(cameraAngle) #convert degrees to radians
estimatedDistance = findDistance(cameraHight, cameraRadians)
print(estimatedDistance)

答案 1 :(得分:1)

cos函数采用弧度而不是度作为参数。

更改

return CH / math.cos(CA)

return CH / math.cos(math.radians(CA))