OpenCV:如何获取CvBox2D的角点?

OpenCV:如何获取CvBox2D的角点?,opencv,xna,emgucv,Opencv,Xna,Emgucv,我需要找到CvBox2D(或MCvBox2D)的角位置,以便在XNA中的游戏对象上映射找到的轮廓。我对旋转角度的正确平移有问题。我认为这是一种基本的操作,但我想在互联网上找到任何解决办法 我试过: rotationAngle = box.angle * (180.0/ CV_PI); angle = box.angle; box.angle=rotationAngle; alien.X = box.center.X - box.Width / 2; alien.Y = box.center.Y

我需要找到
CvBox2D
(或
MCvBox2D
)的角位置,以便在XNA中的游戏对象上映射找到的轮廓。我对旋转角度的正确平移有问题。我认为这是一种基本的操作,但我想在互联网上找到任何解决办法

我试过:

rotationAngle = box.angle * (180.0/ CV_PI);
angle = box.angle;
box.angle=rotationAngle;
alien.X = box.center.X - box.Width / 2;
alien.Y = box.center.Y - box.Height / 2;
alien.angle=angle;
但它没有正确地翻译它


是否有人尝试过在这种结构上获取角点?

获取CvBox2D顶点的最简单方法是将其转换为旋转体:

CvBox2D box = ...
cv::RotatedRect rr(box);
cv::Point2f vertices[4];
rr.points(vertices);
// vertices now has the four corners your seek

获取CvBox2D顶点的最简单方法是将其转换为RotatedRect:

CvBox2D box = ...
cv::RotatedRect rr(box);
cv::Point2f vertices[4];
rr.points(vertices);
// vertices now has the four corners your seek

在EmguCV中,你只需要打电话

PointF[] corners = box.GetVertices();

如果
box
是EmguCV中的
MCvBox2D

,则只需调用

PointF[] corners = box.GetVertices();

如果
box
MCvBox2D

谢谢,那就是我需要的!谢谢,这正是我需要的!