OpenCV Mat 讀取數值錯誤,如何讀出正確數值
在做仿射轉換的時候發現讀出來的數值都怪怪的,找了很久,後來才想到應該是要用 double,下面是讀取的範例。
//選定幾何轉換前後相對的三個點
Point2f srcTri[3];
srcTri[0] = Point2f(0, 0);
srcTri[1] = Point2f(10, 0);
srcTri[2] = Point2f(0, 10);
Point2f dstTri[3];
dstTri[0] = Point2f(10, 10);
dstTri[1] = Point2f(20, 10);
dstTri[2] = Point2f(10, 20);
Mat warp_mat = getAffineTransform(srcTri, dstTri);
cout << warp_mat << endl;
cout << "=========================" << endl;
for(size_t j = 0; j < warp_mat.rows; j++) {
for(size_t i = 0; i < warp_mat.cols; i++) {
cout << warp_mat.at<float>(j, i) << ", "; // 錯誤
//cout << warp_mat.at<double>(j, i) << ", "; // 正確
} cout << endl;
} cout << endl;
沒有留言:
張貼留言