如果您稱單應性矩陣H,相機矩陣K(需要轉換爲像素)將會是這樣的,這取決於您的分辨率。
Mat K= Mat::zeros(3,3,CV_32FC1);
K.at<float>(0,0)=500.0f;
K.at<float>(0,2)=320.0f; // width/2
K.at<float>(1,1)=500.0f;
K.at<float>(1,2)=240.0f; // height/2
K.at<float>(2,2)=1.0f;
如果你的標記點的2D矢量點:
vector<Point2f> marker_point; //containing coordinates in centimeters
,投射會是這樣,結果在像素3D點座標。
Mat point(3,1,CV_32FC1);
point.at<float>(0) = marker_point.x;
point.at<float>(1) = marker_point.y;
point.at<float>(2) = 1.0f;
point = H* point;
point = point/point.at<float>(2); //Normalize
point = K* point; //to pixels