对不起,我对编码完全不熟悉。首先,为了这个项目的目的,我使用了一个包含Python绑定到OpenCV的库。在
我的相机因为显示鱼眼扭曲而校准过。我分别获得了K和D的以下值,即固有相机矩阵和失真矩阵:K = [[438.76709 0.00000 338.13894]
[0.00000 440.79169 246.80081]
[0.00000 0.00000 1.00000]]
D = [-0.098034379506 0.054022224927 -0.046172648829 -0.009039512970]
Focal length: 2.8mm
Field of view: 145 degrees (from manual)
当我取消对图像的失真并显示它时,我得到了一个在拉伸过远(预期)的区域具有黑色像素的图像。但是,这并不妨碍对象宽度的计算,因为对象不大,并且填充了图像的20%。在
我会把物体放在距离相机镜头10厘米的地方。基于我读到的针孔相机模型,我将需要控制三维到二维转换的外部参数。然而,我不知道我应该如何得到它。在
假设我有这2个点的像素坐标(每个点沿着我想测量距离的边),如何使用这些导出的矩阵找到这两个点之间的真实距离?在
另外,如果我的矩形物体不平行于相机的主轴,有没有算法来计算宽度即使在这样的条件下?在