gpt4 book ai didi

c++ - 使用 RotatedRect 跟踪手部旋转

转载 作者:行者123 更新时间:2023-12-02 16:58:43 24 4
gpt4 key购买 nike

我在一个项目中使用 OpenCV 来检测手势,我设法隔离了手并绘制了手现在非常清晰地出现的凸面。我的目标是检测手是否在旋转或向左或向右移动。
我使用 RotatedRect 来确定手是否旋转,但即使我的手是直的,RotatedRect 似乎总是向左或向右(主要是向左)倾斜。我怎么可能解决这个问题?
Image of hand
这是我创建和绘制 RotatedRect 的代码:

double angle;
RotatedRect rc = minAreaRect(biggestcontours[hand]);
if (rc.size.width < rc.size.height) {
angle = 90 - rc.angle;
}
else {
angle = -rc.angle;
}
Point2f rect_points[4];
rc.points(rect_points);
for (int j = 0; j < 4; j++)
{
line(onehand, rect_points[j], rect_points[(j + 1) % 4], Scalar(255, 0, 0));
}
备注 :biggestcontours[hand] 包含我手的轮廓。

最佳答案

这是一种使用 PCA 的方法
You can find the code here
结果:
enter image description here
注意:如果手形没有变化并且你有一个引用角度,你就可以准确地得到它的旋转角度。

关于c++ - 使用 RotatedRect 跟踪手部旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63579997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com