我正在做一些基於計算機視覺的手勢識別的東西。在這裏,我想檢測一下我手上的一個圓圈(一個圓圈運動)。我的初始階段工作正常,我能夠從我繪製的每一幀中獲得一個質心。這實質上是我的數據集。二維座標點的集合。現在我想檢測一個循環類型的動作,並且說要生成一個調用「檢測到圓圈」的函數。圓形檢測器將給出YES/NO布爾輸出。 以下是我生成的40幀數據集示例從2D數據集的圓估計
x,y值只是使用MATLAB繪製爲位圖圖像。 我最初的手部動作很慢,後來我拿起速度在規定的時間內(40幀)完成這個圈子。關於幀數目沒有硬性規定,但現在我使用40幀滑動窗口進行圓圈檢測(0-39),然後是(1-40),然後是(2-41)等。 我也是計算使用連續點之間的反正切:
angle = atan2(prev_y - y, prev_x - x) * 180/pi;
現在是什麼方法應該採取我用於檢測圓(該樣品圖像應導致YES)。我注意到的角度並不穩定地從0增加到360.它確實增加了,但是隨着跳躍的增加而增加。
是的,我已經嘗試Hough變換,但它不工作..我現在將嘗試你的第一種方法。謝謝.. – Soumyajit
沒問題,我相當肯定,只要你擁有大部分的圈子,並且你能夠或多或少地均勻地對斑點中心進行採樣,簡單的方法就可以工作。 –
好吧,我嘗試了第一種方法。我手部運動的速度必須或多或少一致,否則質心向緩慢畫出的點(更密集的區域)移動。我想也許是在各點之間畫一條線,然後估計中心。但是這將是計算成本高昂的。 – Soumyajit