2

我需要找到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;

但它没有正确翻译。

有没有人试图在这种结构上获得角落?

4

2 回答 2

2

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

CvBox2D box = ...
cv::RotatedRect rr(box);
cv::Point2f vertices[4];
rr.points(vertices);
// vertices now has the four corners your seek
于 2013-05-17T03:07:57.217 回答
2

在 EmguCV 中,您只需要调用

PointF[] corners = box.GetVertices();

如果boxMCvBox2D.

于 2013-05-17T06:25:37.577 回答