【发布时间】:2015-05-27 09:26:56
【问题描述】:
我正在尝试使用 SVD 求解方程组:cv::SVD::solveZ(A, x);,但 A 需要是一个矩阵。 OpenCV 不提供std::list 到cv::Mat 的任何转换。所以我的问题是,是否有一种聪明的方法来转换它,而不必将 std::list 转换为 std::vector 之前。
矩阵A 是一个 3xN 矩阵。我的列表包含 N cv::Point3d 元素。
我的代码如下所示:
std::list<cv::Point3d> points; // length: N
cv::Mat A = cv::Mat(points).reshape(1); // that's how I do it with a std::vector<cv::Point3d>
cv::Mat x;
cv::SVD::solveZ(A, x); // homogeneous linear equation system Ax = 0
如果有人对此有任何想法,请告诉我。
【问题讨论】: