2014-09-12 33 views
0

我相信對於墊(載體)產生的報頭是錯誤的, 它打印矩陣作爲矩陣NX2,然而,山口屬性被設置爲2opencv:是mat(矢量<Point2f>)喊錯了矩陣頭?

我不確認是否爲任何原因需要這個新矩陣的副本或只是一個子矩陣的操作將失敗。

一個簡單的例子將獲得對這個新矩陣的選擇: (範圍(0,N),範圍(0,1))將選擇前兩列,而相反, 只有第一個被選中範圍運算符的第二個成員是排他性的)

回答

0

我沒有看到你的問題,實際上Mat(vector<Point2f>)是一個N行,1列,2行的矩陣,並且範圍上的選擇返回N首先

vector<Point2f> cp; 
cp.push_back(Point2f(1,1)); 
cp.push_back(Point2f(2,2)); 
cp.push_back(Point2f(3,3)); 

Mat m(cp); 


cerr << m.rows << " " << m.cols << " "<< m.channels() << endl; 
cerr << m << endl; 

int N=2; 
Mat m2 = m(Range(0,N), Range(0,1)); 

cerr << m2.rows << " " << m2.cols << " "<< m2.channels() << endl; 
cerr << m2 << endl; 

3 1 2 
[1, 1; 2, 2; 3, 3] 
2 1 2 
[1, 1; 2, 2] 
+0

非常感謝。我沒有使用mat容器一個月,我只是看深度標誌而不是尋找唯一定義的類型標誌; – user66296 2014-09-13 15:27:30