您好我的训练数据包含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
答案 0 :(得分:1)
您的数据需要double
类型,因此Mat
的正确类型应为CV_64F(与CV_64FC1相同)。但是,一些OpenCV函数无法处理任何类型的数据,并且它们可能只需要一个特定的数据。在您的情况下,cvCheckTrainData
函数可能需要CV_32F类型的数据,即Mat
的{{1}}。尝试一下,但在这种情况下,您的数据会失去一些精确度。