Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在OpenCV中将cv::MatExpr直接转换为cv::Point?_Opencv - Fatal编程技术网

有没有一种方法可以在OpenCV中将cv::MatExpr直接转换为cv::Point?

有没有一种方法可以在OpenCV中将cv::MatExpr直接转换为cv::Point?,opencv,Opencv,假设我想使用矩阵乘法将投影结果转换回点,因为这样做在语义上是合理的: Point3f p_prim = A * p; 然而,这似乎不起作用,因为矩阵乘法的结果是cv::MatExpr类型,并且似乎没有办法从cv::MatExpr转换到点,或者我在OpenCV文档中忽略了它?MatExpr只能转换到Mat。您可以构建您的观点,如: Mat1f temp = A * p; Point3f pt(temp(0), temp(1), temp(2)); 假设A*p的结果是1x3或3x1矩阵。MatE

假设我想使用矩阵乘法将投影结果转换回点,因为这样做在语义上是合理的:

Point3f p_prim = A * p;

然而,这似乎不起作用,因为矩阵乘法的结果是
cv::MatExpr
类型,并且似乎没有办法从
cv::MatExpr
转换到
,或者我在OpenCV文档中忽略了它?

MatExpr
只能转换到
Mat
。您可以构建您的观点,如:

Mat1f temp = A * p;
Point3f pt(temp(0), temp(1), temp(2));

假设
A*p
的结果是
1x3
3x1
矩阵。

MatExpr
仅可转换为
Mat
。您可以构建您的观点,如:

Mat1f temp = A * p;
Point3f pt(temp(0), temp(1), temp(2));

假设
A*p
的结果是
1x3
3x1
矩阵。

这似乎是最直接的方法。我仍然想知道为什么框架不直接支持这一点。
向量
不打算这样使用吗?如果是这样,它们的作用是什么?对于OpenCV
Mat
Point
s表示矩阵坐标,
Vec\u
是矩阵的一个元素。这似乎是最直接的方法。我仍然想知道为什么框架不直接支持这一点。
向量
不打算这样使用吗?如果是,它们是干什么用的?对于OpenCV
Mat
s表示矩阵坐标,
Vec
是矩阵的一个元素。