2015-11-27 37 views
0

我想在openCV中应用函数svd。我采取 矢量< Point3f>并将其分配给我创建的svd opbject。但在运行期间有一个错误在OpenCV中的SVD类与矢量<point3f>作为输入

"Assertion failed<type ==CV_32F || type == CV_64F>" 

在我的情况是什么问题?

+0

我想我的问题是我不知道如何正确使用SVD类。任何人都可以提供我一个示例代码? – Carl

回答

1

许多openCV类只能用于特定输入,即3列浮点数,而point3f单列。

您可能必须将矢量转换为cv :: Mat,例如,cv::Mat tmp(myvector),然后可能重新将mat变成1个通道的3列 - 例如,当你将它传递给svd调用时,你可以使用tmp.reshape(1)

+0

因此,你是说svd只接受Mat作为输入吗?参考官方参考资料([link](http://docs.opencv.org/master/df/df7/classcv_1_1SVD.html#gsc.tab=0)),输入类型可以是“InputArray”。 这里重塑的目的是什么? – Carl

+0

尝试过,但它不起作用。 – Carl