我正在尝试使用VB.NET实现一个Web应用程序,该应用程序应该使用EMGUCV库对文件夹中的图像执行面部识别。无论如何,当我在facerecognizer对象上调用方法训练时,会引发一个奇怪的异常:
'OpenCV:0< = _rowRange.start&& _rowRange.start< = _rowRange.end&& _rowRange.end< = m.rows
这是我的测试代码:
static int LocalGenericParameterCount(this Type t)
=> t.IsNested ? t.GenericParameterCount() - t.DeclaringType.GenericParameterCount()
: t.GenericParameterCount();
我尝试了几乎所有东西,但可以'解决它。任何帮助都将非常感激。
答案 0 :(得分:0)
我自己设法找到了解决方案。 roblem真的和我用于构造函数的对象类型一样简单。它应该是一个VectorOfMat而不是Mat。这个课无法工作,因为它期待一个阵列。
Dim images As New VectorOfMat
另一个问题出在构造函数本身。应该是:
Dim model As New EigenFaceRecognizer(80, Double.PositiveInfinity)
还有一条建议:如果火车方法没有收到至少两张图像的数组,它将引发另一个异常。图像应该具有相同的大小或(奇怪)对象将再抛出一个例外。
最后,预测结果的正确代码是:
Dim PR As FaceRecognizer.PredictionResult = model.Predict(imgConf)
你得到特征脸预测距离:
Dim dis = PR.Distance
希望这可以让人摆脱困境。
Ceers。