Opencv 3.4.1:仿射变换
cvPoint2f FixedPoints;
cvPoint2f MovingPoints;
for (int i = 0; i < FixedPoing_x.size(); i++)
{
FixedPoints.push_back(cv::Point2f(FixedPoint_x[i], FixedPoint_y[i]));
MovingPoints.push_back(cv::Point2f(MovingPoint_x[i], MovingPoint_y[i]));
}
setcvFixedPoints(FixedPoints);
setcvMovingPoints(MovingPoints);
std::cout << "FixedPoints: \n" << FixedPoints << std::endl;
std::cout << "MovingPoints: \n" << MovingPoints << std::endl;
cv::Mat Matrix = cv::estimateRigidTransform(FixedPoints, MovingPoints, false);
if (Matrix.cols == 0)
{
std::cout << "Error: estimateRigidTransform()执行出错!" << std::endl;
}
offset[0] = Matrix.at<double>(0, 2);
offset[1] = Matrix.at<double>(1, 2);