我需要找到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;
但它没有正确翻译。
是否曾有人试图在这种结构上找到目标?
答案 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();
如果box
是MCvBox2D
。