【发布时间】:2013-05-10 01:06:47
【问题描述】:
看起来很简单。毕竟我们知道一个 std 或 openCV 向量可以很容易地转换成这样的矩阵:
vector<Point> iptvec(10);
Mat iP(iptvec);
openCV 备忘单中建议反过来:
vector<Point2f> ptvec = Mat_ <Point2f>(iP);
但是,有一个警告:矩阵必须只有一行或一列。要转换任意矩阵,您必须重塑:
int sz = iP.cols*iP.rows;
vector<Point2f> ptvec = Mat <Point2f>(iP.reshape(1, sz));
否则会报错:
*OpenCV 错误:创建中的断言失败 (dims == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0)) ,文件/home/.../OpenCV-2.4.2/modules/core/src/matrix.cpp,第1385行...
【问题讨论】: