功能說明
已知
處於不同座標系下的兩個座標點集a
aa和bbb,
a i∈
r2
a_i\in r^2
ai∈r2
, b i∈
r2
b_i \in r^2
bi∈r2
並且滿足以下條件t⋅p
ai=p
bi
t\cdot p_=p_
t⋅pai
=pbi
求
轉換矩陣 ttt
c++實現
資料檔案 sample.xy
前兩列為集合a
aa的座標點(xa
i,ya
i)
(x_,y_)
(xai,
yai
),後兩列為集合b
bb的座標點(xb
i,yb
i)
(x_,y_)
(xbi,
ybi
)
-0.0252359227429 -0.0476232909431 330674.269915 3357812.427190
-0.0407901595465 0.083445758589 330674.275657 3357812.416351
-0.0609007045329 0.214495280716 330674.281479 3357812.405183
-0.083873836225 0.345326492203 330674.287303 3357812.393994
-0.10907351247 0.476001609724 330674.293129 3357812.382816
-0.135304033057 0.606518110971 330674.298937 3357812.371967
-0.163586705944 0.736986275985 330674.304782 3357812.360789
-0.193198426386 0.867483556297 330674.310639 3357812.349578
-0.223337949791 0.99869281889 330674.316531 3357812.338344
-0.254186255713 1.13033062908 330674.322378 3357812.327396
原始碼檔案 convert_frame.cc
#include
#include
"eigen/svd"
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
using
namespace eigen;
intmain
(int argc,
char
** ar**)
}int mrow = pointsnum *2;
matrixxf m
(mrow,4)
; vectorxf rhs
(mrow)
; std::string line;
int i=0;
while
(getline
(cin,line)
) jacobisvd
svd(m, computethinu | computethinv)
; vectorxf x(4
);x = svd.
solve
(rhs)
; matrixxf a(3
,3);
a(0,
0)=x
(0);
a(0,
1)=-
x(1)
;a(0
,2)=
x(2)
;a(1
,0)=
x(1)
;a(1
,1)=
x(0)
;a(1
,2)=
x(3)
;a(2
,0)=
0;a(
2,1)
=0;a
(2,2
)=1;
cout <<
"transform matrix is:"
}
cmakelists.txt
cmake_minimum_required
( version 2.8
)project
( convert )
set(cmake_cxx_flags "$ -std=c++11"
)include_directories
("./include"
)find_package
(eigen3 required)
include_directories($)
add_executable
( convert_frame convert_frame.cc )
矩陣奇異值分解
奇異值分解是線性代數中一種重要的矩陣分解,在訊號處理 統計學等領域有重要應用。定義 設a為m n階矩陣,aha的n個特徵值的非負平方根叫作a的奇異值。記為 i a 如果把aha的特徵值記為 i a 則 i a i aha 1 2 定理 奇異值分解 設a為m n階復矩陣,則存在m階酉陣u和n階酉陣v,...
SVD矩陣奇異值分解
不正之處,歡迎指正!矩陣的奇異值分解是線性代數中一種重要的矩陣分解,在訊號處理,統計學等領域中有著重要的應用。在大學裡面的線性代數的課程中一般都是會有svd分解相關的知識的。但是往往只是涉及到理論上的知識體系,並沒有多少實際應用的背景,所以結果就是學了沒多久就會忘。奇異值分解可以將乙個比較複雜的矩陣...
矩陣的奇異值分解
奇異值分解 singular value decomposition 是線性代數中一種重要的矩陣分解,奇異值分解則是特徵分解在任意矩陣上的推廣。在訊號處理 統計學等領域有重要應用。假設m是乙個m n階矩陣,其中的元素全部屬於域 k,也就是實數域或複數域。如此則存在乙個分解使得 其中u是m m階酉矩陣...