训练数据必须是函数cvCheckTrainData运行时错误中的浮点矩阵

时间:2013-06-12 12:20:23

标签: c++ opencv

您好我的训练数据包含long double (like 1.6448e-43, -6.08498e-36)类型的数字。我应该在以下代码中使用哪个OpenCV数据类型:

Mat training_data = Mat(NUMBER_OF_TRAINING_SAMPLES,
                ATTRIBUTES_PER_SAMPLE, *HERE*);

当我使用以下数据类型时,它给出了上述运行时错误:

Mat training_data = Mat(NUMBER_OF_TRAINING_SAMPLES,
                ATTRIBUTES_PER_SAMPLE, CV_64FC1);

使用open cv random forest,即CVTrees

1 个答案:

答案 0 :(得分:1)

您的数据需要double类型,因此Mat的正确类型应为CV_64F(与CV_64FC1相同)。但是,一些OpenCV函数无法处理任何类型的数据,并且它们可能只需要一个特定的数据。在您的情况下,cvCheckTrainData函数可能需要CV_32F类型的数据,即Mat的{​​{1}}。尝试一下,但在这种情况下,您的数据会失去一些精确度。