簡體   English   中英

使用 RotatedRect 跟蹤手部旋轉

[英]Tracking hand rotation with RotatedRect

我在一個項目中使用 OpenCV 來檢測手勢,我設法隔離了手並繪制了手現在非常清晰地出現的凸面。 我的目標是檢測手是否在旋轉或向左或向右移動。

我使用 RotatedRect 來確定手是否旋轉,但似乎 RotatedRect 總是向左或向右(主要是向左)傾斜,即使我的手是直的。 我怎么可能解決這個問題?

手的形象

這是我創建和繪制 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 的方法

你可以在這里找到代碼

結果:

在此處輸入圖片說明

注意:如果手形沒有變化並且您有一個參考角度,您將能夠准確地獲得它的旋轉角度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM