![](/img/trans.png)
[英]Given truth values for boolean variables, x, y, and z, compute x XOR y XOR z
[英]Find direction of given x,y,z cordinates
我是opencv的新手,而且正在不斷發展。 我有x,y,z坐標(0.00949334694383068,-0.3999829847985352,0.8449078780010854)通過使用給定的坐標我怎么能找到方向。
for an example
input one : x,y,z = 0.00949334694383068, -0.3999829847985352, 0.8449078780010854
input two : x,y,z = 0.01603883281370779, 0.6066595296580494, 0.5342810849038371
最后,我想比較input_one方向和input_two方向。 任何幫助表示贊賞
您要嘗試做的就是計算方位角。 如果您有興趣出於導航或地理目的而執行此操作,並且需要對此有透徹的了解,則可以從此處開始:
否則,您可能會尋找一個庫來計算基於3d坐標的方位角
這稱為向量數學。
相對於某些原點(在您的情況下x=0,y=0,z=0
) x=0,y=0,z=0
“坐標”是一種特殊的向量。 出於這個原因,所不同的x1-x2, y1-y2, z1-z2
是從點2 到點 1.逆矢量x2-x1, y2-y1, z2-z1
是從點1 至點2的載體。
向量的方向通常是通過忽略其長度或將其長度設置為1來定義的。 因此,我們需要首先定義長度,即L = √(x*x + y*y + z*z)
。 我們可以定義向量x/L, y/L, z/L
,其指向與x,y,z
相同的方向x,y,z
但長度為1。
最后,為了比較兩個方向,我們可以計算這兩個方向的內積 : x1/L1 * x2/L2 + y1/L1 * y2/L2 + z1/L1 * z2/L2
。 如果那是一個,則它們指向相同的方向。 如果為0,則它們是正交的。 如果為-1,則它們指向相反的方向。
如您所見,向量0,0,0的長度為0,沒有方向。 這會使事情復雜化。
在OpenCV中: Vec類 。 長度函數稱為norm(v)
,內部乘積稱為v1.mul(v2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.