我正在使用OpenCV开发对象检测的iOS应用。
为了我的目的,我必须将焦距设置为固定值(因此自动对焦已禁用)。
我想向用户指示如何移动(向前或向后)以使对象完全对焦。
我尝试使用公式working_distance = fovX_wanted * focalLength / sensorWidth
(根据校准过程估算出focusLength)。问题在于,该公式给出了在水平方向上精确捕获fovX_wanted
(以毫米为单位)的距离的概念,但没有考虑该“ fov”中的对象。
所以在这一刻我有这个功能:
+ (float) calculateOptimalDistance:(float)focalLength fovX: (float)fieldOfViewX sensorWidth:(float)sensorWidth
{
return (fieldOfViewX * focalLength) / sensorWidth;
}
但是它返回了我需要的东西。
我需要一种获得最佳距离的方法来完美地获得物体 在焦点上,所以这与我现在得到的工作距离不同。我知道对象的大小,我要在图像中看到的fov(在x维度上),传感器的大小(但是估计值,所以我不喜欢使用它)和焦距。 ido如何?