VB.NET中的EMGUCV面部识别问题

时间:2017-10-30 22:49:30

标签: vb.net emgucv face-recognition

我正在尝试使用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();

我尝试了几乎所有东西,但可以'解决它。任何帮助都将非常感激。

1 个答案:

答案 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。