mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 08:13:04 +04:00
Merge pull request #12670 from alalek:imgproc_getRotationMatrix2D_return_type
This commit is contained in:
@@ -2418,7 +2418,16 @@ coordinate origin is assumed to be the top-left corner).
|
||||
|
||||
@sa getAffineTransform, warpAffine, transform
|
||||
*/
|
||||
CV_EXPORTS_W Mat getRotationMatrix2D( Point2f center, double angle, double scale );
|
||||
CV_EXPORTS_W Mat getRotationMatrix2D(Point2f center, double angle, double scale);
|
||||
|
||||
/** @sa getRotationMatrix2D */
|
||||
CV_EXPORTS Matx23d getRotationMatrix2D_(Point2f center, double angle, double scale);
|
||||
|
||||
inline
|
||||
Mat getRotationMatrix2D(Point2f center, double angle, double scale)
|
||||
{
|
||||
return Mat(getRotationMatrix2D_(center, angle, scale), true);
|
||||
}
|
||||
|
||||
/** @brief Calculates an affine transform from three pairs of the corresponding points.
|
||||
|
||||
|
||||
@@ -3234,7 +3234,7 @@ void cv::warpPerspective( InputArray _src, OutputArray _dst, InputArray _M0,
|
||||
}
|
||||
|
||||
|
||||
cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale )
|
||||
cv::Matx23d cv::getRotationMatrix2D_(Point2f center, double angle, double scale)
|
||||
{
|
||||
CV_INSTRUMENT_REGION();
|
||||
|
||||
@@ -3242,16 +3242,10 @@ cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale )
|
||||
double alpha = std::cos(angle)*scale;
|
||||
double beta = std::sin(angle)*scale;
|
||||
|
||||
Mat M(2, 3, CV_64F);
|
||||
double* m = M.ptr<double>();
|
||||
|
||||
m[0] = alpha;
|
||||
m[1] = beta;
|
||||
m[2] = (1-alpha)*center.x - beta*center.y;
|
||||
m[3] = -beta;
|
||||
m[4] = alpha;
|
||||
m[5] = beta*center.x + (1-alpha)*center.y;
|
||||
|
||||
Matx23d M(
|
||||
alpha, beta, (1-alpha)*center.x - beta*center.y,
|
||||
-beta, alpha, beta*center.x + (1-alpha)*center.y
|
||||
);
|
||||
return M;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user