c# – 像素坐标到3D线(opencv)
作者:互联网
我在屏幕上显示的图像通过cvInitUndistortMap& amp; cvRemap(已完成相机校准),用户点击图像中的某个功能.所以我有特征的(u,v)像素坐标,我也有内在矩阵和失真矩阵.
我正在寻找的是相机/真实世界坐标中的3D线的等式,用户点击的特征必须在该等式上.我已经在摄像机的图像平面和特征之间有垂直距离,所以我可以将它与上述方程式结合起来,给出空间特征的(X,Y,Z)坐标.
听起来很简单(反向内在矩阵或什么?)但我无法在任何地方找到逐步说明. C或C#代码首选.
解决方法:
这是一个有点老问题,但仍然可能对某人有用.
所有线都经过点(0,0,0),所以:
line.x0 = 0;
line.y0 = 0;
line.z0 = 0;
方向向量如下:
line.A =(u / fx) – (cx / fx);
line.B =(v / fy) – (cy / fy);
line.C = 1;
cx,cy,fx,fy是来自相机矩阵的参数.
方程式在“Learning OpenCv”一书中有解释.
标签:c,c-2,opencv,computer-vision,camera-calibration 来源: https://codeday.me/bug/20190621/1258104.html