0
我需要從旋轉矩形的邊界框和旋轉角度找到旋轉矩形的座標。從包圍矩形和角度獲取旋轉矩形座標
下面的圖片將解釋我需要找到什麼?
我得找點P1,P2,P3,P4
其中,
R1,R2,R3,R4,angle
中給出。
我需要從旋轉矩形的邊界框和旋轉角度找到旋轉矩形的座標。從包圍矩形和角度獲取旋轉矩形座標
下面的圖片將解釋我需要找到什麼?
我得找點P1,P2,P3,P4
其中,
R1,R2,R3,R4,angle
中給出。
考慮以下非旋轉矩形:
A -------- B
| |
D -------- C
有多麼邊框可以定義兩種選擇。或者:
邊界框的寬度和高度(我們稱之爲w_b
和h_b
)可以很容易地根據給定的R
來計算。
在下面,我假定矩形的中心位於原點。這使得計算更容易遵循。該中心可能會在之後加入。
由於未旋轉矩形的寬度w
和高度h
,位置是:
A = (-w/2, -h/2)
B = (w/2, -h/2)
C = (w/2, h/2)
D = (-w/2, h/2)
旋轉A
關於原點與角angle
,我們得到A'
:
A'.x = -w/2 * cos angle - h/2 * sin angle
A'.y = w/2 * sin angle - h/2 * cos angle
類似的公式可以計算出對於其餘的點。在下文中,我將重點放在邊界框定義的第一個選項上(第二個選項類似,我留給你看)。
假設邊框」寬度由A
和C
定義,我們可以得到:
w_b = | C'.x - A'.x |
然後:
w_b = | w * cos angle + h * sin angle |
類似:
h_b = | w * sin angle + h * cos angle |
除了w
所有變量和h
是已知的。因此,你可以求解線性方程組來得到它們。然後,使用這些值計算未旋轉的點,然後計算旋轉的點。
在計算案例的解決方案後,您需要檢查假設是否仍然成立。即如果邊界框實際上是由您假設的角定義的。否則,這種情況是無法解決的。
請注意,如果angle
爲45°,因爲正弦和餘弦相等,LSE會變得不確定。因此,您可以自由選擇w
和h
。
如何指定矩形進行旋轉? 4分?原點,寬度,高度?邊緣線的等式?另外,旋轉的方向是什麼? – uliwitness
旋轉是基於中心。實際上最初我有一個矩形A,並將它旋轉到R,然後找到R的邊界框。現在我有數據邊界框和角度。其實旋轉是從一些軟件做的,我只有數據邊界框和角度作爲來自軟件的信息。 – Haris
如何指定矩形A? – uliwitness