How to rotate point in OpenCV

It is common to use the cv::Point types for points in C++ code that uses OpenCV. Rotating such a point around origin or rotating it around another center point is straightforward. Remember that positive angle is counter-clockwise.

cv::Point2f RotatePoint(const cv::Point2f& p, float rad)
{
const float x = std::cos(rad) * p.xstd::sin(rad) * p.y;
const float y = std::sin(rad) * p.x + std::cos(rad) * p.y;
const cv::Point2f rot_p(x, y);
return rot_p;
}
cv::Point2f RotatePoint(const cv::Point2f& cen_pt, const cv::Point2f& p, float rad)
{
const cv::Point2f trans_pt = p – cen_pt;
const cv::Point2f rot_pt = RotatePoint(trans_pt, rad);
const cv::Point2f fin_pt = rot_pt + cen_pt;
return fin_pt;
}

Tried with: OpenCV 2.4.9 and Ubuntu 14.04

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.