今天我們來講講四元數的表示法,跟旋轉向量很像,(X,Y,Z)作為其旋轉的軸,θ為旋轉角,則等校的四元數為:
[cos(θ/2), xsin(θ/2), ysin(θ/2), z*sin(θ/2)]
其中cos(θ/2)為四元數的實部w,後面的x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)
為四元數的虛部i、j、k
角度的部分跟四元數的實部有關係,而旋轉軸的三個分量則分別跟四元數的ijk有連動。
然而openCV並沒有四元數這種資料型別,所以在此讓我介紹另外一個C++ 線性代數模板函示庫 Eigen
http://eigen.tuxfamily.org/index.php?title=Main_Page
你可以直接從官網下載最新的 released的版本,如果你下載的是3.3.7那麼解壓縮之後應該會得到eigen-eigen-323c052e1731
的資料夾,我們在我們的專案檔設定的include的地方,直接include這個資料夾就完成了。
同樣的讓我們把時間調回day1如果你在cmake的地方有注意到with_eigen的選項之後再編譯opencv的函示庫的時候,你也可以讓eigen負責計算opencv裡面一些線性代數的部分。
而如果你想要更進一步了解四元數的話,
推薦你以下這部影片。
https://www.youtube.com/watch?v=d4EgbgTm0Bg&feature=youtu.be
因為時間的關係,沒有辦法示範eigen四元數的旋轉,我會在明天的時候整理好...........希望