int main()
{
float A[] = { 1, 0, 0, 0,
0, 2, 0, 10,
0, 0, 1, 20,
0, 0, 0, 1 };
cv::Mat perMat = cv::Mat(4, 4, CV_32FC1, A); // 透视投影变换矩阵
float s[] = { 10, 20, 30 };
cv::Mat src = cv::Mat(1, 1, CV_32FC3, s); // 待变换点
cv::Mat dst; // 变换后点
cv::perspectiveTransform(src, dst, perMat);
std::cout << "dst Q:" << std::endl << dst << std::endl;
std::cout << std::endl;
for (int i = 0; i < 1; i++)
{
float* pdata = dst.ptr<float>(i);
std::cout << *pdata << "\t" << *(pdata + 1) << "\t" << *(pdata + 2);
}
std::cout << std::endl;
return 0;
}