OpenCV:如何摆脱CvBox2D的角落?

时间:2013-05-17 01:43:24

标签: 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 - box.Height / 2;
alien.angle=angle;

但它没有正确翻译。

是否曾有人试图在这种结构上找到目标?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

在EmguCV中你只需要打电话

PointF[] corners = box.GetVertices();

如果boxMCvBox2D