OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(3.4.2) Error: Bad argument (Empty training data was given. You'll need more than one sample to learn a model.) in train, file J:\opencv\opencv_contrib-3.4.2\modules\face\src\eigen_faces.cpp, line 62
时间: 2023-12-28 18:39:47 浏览: 47
根据错误提示,OpenCV 报告了一个错误:`Empty training data was given. You'll need more than one sample to learn a model.` 这意味着在训练模型时提供了空的训练数据。
这个错误通常是由于以下几个原因导致的:
1. 训练数据为空:请确保在调用训练函数之前,`newtrainingImages`变量已经正确地填充了至少一张人脸图像。检查一下是否正确读取并加载了训练图像。
2. 数据格式不正确:确保你提供的训练图像具有正确的格式和尺寸。通常情况下,训练图像应该是灰度图像,并且具有相同的尺寸。
3. 数据量不足:如果你提供的训练图像数量太少,可能会导致模型无法学习。确保你有足够的训练图像来训练模型。
解决这个问题的方法是检查并确保你正确地填充了训练数据,并且数据的格式和数量是正确的。你可以尝试使用更多的训练图像来训练模型,以确保模型能够学到足够的人脸特征。
如果问题仍然存在,请提供更多相关的代码和错误信息,以便我们能够更好地理解和帮助你解决问题。
相关问题
OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.5.1) Error: Assertion failed (!ssize.empty()) in remapBilinear, file D:\opencv\opencv-4.5.1\modules\imgproc\src\imgwarp.cpp, line 668
这是一个OpenCV的错误,Assertion failed说明代码中有断言错误,!ssize.empty()说明输入的size参数不能为空。
remapBilinear是OpenCV中的一个函数,用于双线性插值重映射图像,在D:\opencv\opencv-4.5.1\modules\imgproc\src\imgwarp.cpp的第668行出现了错误。
这个错误可能是由于代码中输入的参数有误导致的,建议检查输入参数的合法性并修改错误。
OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(3.4.2) Error: Bad argument (Labels must be given as integer (CV_32SC1). Expected 4, but was 4.) in train, file J:\opencv\opencv_contrib-3.4.2\modules\face\src\eigen_faces.cpp, line 65
根据错误信息,OpenCV报告说标签应该作为整数(CV_32SC1)给出。错误信息中还提到期望的标签数是4,但实际上是4。这个错误可能是由于以下原因之一引起的:
1. 标签类型错误:确保`labels`向量中的标签是整数类型(CV_32SC1)。你可以使用`int`类型的变量作为标签。
2. 标签数量错误:检查`labels`向量中的标签数量是否与训练图像数量匹配。根据错误信息,期望的标签数量是4,所以确保`labels`向量中有4个标签。
请检查并确保上述两个方面都正确。如果问题仍然存在,请提供更多相关的代码和错误信息,以便我们能够更好地理解和帮助你解决问题。