Transform a point with rotationMatrix2d [closed]
I have a rotation matrix and a Point2f(10,20);
Mat M = getRotationMatrix2D(center,angle,1);
Which function should I use to have the transformed point with the matrix M ?
I have wrote my function to do this but I believe it's already implemented in opencv:
Point2f transformPoint(Mat M, Point2f newPoint) {
return Point2f( M.at<double>(0,0)*newPoint.x+ M.at<double>(0,1)*newPoint.y+ M.at<double>(0,2),
M.at<double>(1,0)*newPoint.x+ M.at<double>(1,1)*newPoint.y+ M.at<double>(1,2));
}
//> Usage:
Mat M = getRotationMatrix2D(center,angle,1);
Point2f oldPoint = Point2f(10,20);
Point2f myNewPoint = transformPoint(M,oldPoint);
Consider that I am trying to use persepctiveTransform(
) like this, but it's giving me a strange error:
Mat r = getRotationMatrix2D(Point2f(100,100),30,1);
vector<Point2f> src,dst(1);
src.push_back(Point2f(10,10)); //> Transform this point 10,10 with the matrix r
perspectiveTransform(src,dst,r);
It says:
OpenCV Error: Assertion failed (mtype == type0 || (CV_MAT_CN(mtype) == CV_MAT_CN
(type0) && ((1 << type0) & fixedDepthMask) != 0)) in unknown function, file C:\s
lave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\matrix.cpp, line 14
66