-2

嗨,我的训练数据包含 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);

在使用开放式 cv 随机森林时,即 CVTrees

4

1 回答 1

1

您的数据需要一个double类型,因此正确的类型Mat应该是 CV_64F(它与 CV_64FC1 相同)。但是,一些 OpenCV 函数不能处理任何类型的数据,它们可能只需要某个类型的数据。在您的情况下,该cvCheckTrainData函数可能需要类型为 CV_32F 的数据,即 a Matof float's。尝试一下,但在这种情况下,您的数据会失去一些精度。

于 2013-06-12T12:25:46.763 回答