HI我使用opencv来检测帧中的两个对象并计算它们之间的距离,但是我需要计算它们之间的距离,你可以给出米与像素之间的关系
答案 0 :(得分:1)
这通常是不可能的:从单个图像中,重建的3d点的比例是未知的。
您的选择要么
添加更多视图,并使用立体视觉算法计算深度。
使用有关物体大小的知识来确定距离。
根据深度z
,相机校准矩阵K
和图像点x
,我们可以得到相应的3D点X
:
X = z * inv(K) * x
带有x
的是齐次坐标。
当你在物体上有两个3D点时,计算距离是微不足道的。
答案 1 :(得分:0)
"谢谢我尝试使用尺寸,但我需要实际尺寸(以米为单位)与像素尺寸之间的关系,以及相机与物体之间的已知距离"
您需要做的是让对象在离相机一定距离处有问题并测量像素。然后,将此对象更远或更靠近相机移动,并再次测量更改像素。
由此可以确定像素变化的比率,该变化等于距离的变化,从而确定物体距相机的距离。它只是一个简单的微分方程。
假设有问题的物体的大小是固定的或缩放到用于计算比率的物体,这种方法应该粗略估计物体到相机的距离。
然后,您需要使用此比率来帮助计算物体之间的距离,因为当物体与相机的距离增加时,它与物体之间的距离会成反比。
然而,这种方法非常混乱,效率低下。更好的方法是使用两个不同的相机并观察Hannes提到的两者之间的差异