繁体   English   中英

opencv:是Mat(矢量 <Point2f> )产生错误的矩阵标题?

[英]opencv: is Mat(vector<Point2f>) yelding a wrong matrix header?

我认为为Mat(vector)生成的标头是错误的,它将矩阵打印为Nx2矩阵,但是col属性设置为2。

我不确定这是否是需要此新矩阵副本的任何操作的原因,否则只是子矩阵会失败。

一个简单的例子就是在这个新矩阵上获得一个选择:(Range(0,N),Range(0,1))会选择前两列,但只会选择第一列(范围的第二个成员)运算符是唯一的)

我看不到您的问题,实际上Mat(vector<Point2f>)是一个N行,1-col,2-chan矩阵,并且在范围内进行选择会返回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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM