2016-11-05 20 views
0

目前,我有一個程序,允許用戶通過每隔0.05秒捕捉一次鼠標位置並在一個點與下一個點之間劃一條線來繪製它。使用該設置,我正在尋找一種方法來識別形狀,如圓形,矩形或字母'P'。如何識別一組線條是否與形狀相似

我目前的算法將屏幕分割爲幾部分,然後用播放器記錄的點標記截面,並用標記的截面製作矩陣,然後將該矩陣與每個形狀矩陣進行比較。

這對旋轉,大小或位置缺乏任何形式的支持。此外,在大多數情況下,閾值的控制很棘手,返回假結果。 我需要一種算法,允許將'P'識別爲'P'。

注意:我當前的應用程序運行在C++框架中,因此歡迎使用任何庫或工具,但我對後面的算法感興趣。

編輯:思考問題後,我已經改變了屏幕上的當前網格,而不是我捕捉的點,並轉移他們調整大小 形狀,以便它適合網格和通過該網格比較已知形狀。

Picture of the process

這解決了位置和大小的問題,同時速度不夠快,還旋轉輸入,然後在一個循環中調整可以解決的問題旋轉(好像雖然這將有一個成本高,也不會非常可靠)

我很樂意歡迎處理形狀比較或旋轉的替代方法。

回答

0

在考慮了問題後,我改變了屏幕上的當前網格,而不是捕獲點並移動它們以調整形狀,以便它適合網格,並通過該網格與已知形狀進行比較。

Picture of the process

這解決了位置和大小的問題,同時速度不夠快,還旋轉輸入,然後在一個循環中調整可以解決的問題旋轉(好像雖然這將有一個成本高,也不會非常可靠)

+0

不錯的問題和不錯的答案! – eRaisedToX