2017-10-30 21 views
0

EMGUCV 라이브러리를 사용하여 폴더의 이미지에서 안면 인식을 수행해야하는 VB.NET이 포함 된 웹 앱을 구현하려고합니다. 어쨌든, facerecognizer에 내가 전화하는 방법 열차 객체 이상한 예외가 발생합니다 :VBG에서 EMGUCV 안면 인식 문제가 발생했습니다.

'OpenCV의 : 0 < = _rowRange.start & & _rowRange.start < = _rowRange.end & & _rowRange.end < = m.rows

Imports System.Drawing 
Imports Emgu.CV 
Imports Emgu.CV.Face 
Imports Emgu.CV.Structure 
Imports Emgu.CV.Util 

Public Class _Default 
Inherits Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 

End Sub 

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Dim images As New Mat 

    Dim Palb0 = "c://IMGDB//Alberto//0.jpg" 
    Dim Palb1 = "c://IMGDB//Alberto//1.jpg" 
    Dim Pcon0 = "c://IMGCONFRONTO//0.jpg" 

    images.PushBack(CvInvoke.Imread(Palb0, CvEnum.LoadImageType.Grayscale)) 

    images.PushBack(CvInvoke.Imread(Palb1, CvEnum.LoadImageType.Grayscale)) 

    Dim model = New EigenFaceRecognizer(80, Double.PositiveInfinity) 

    Dim labels As New VectorOfInt 

    Dim a(0) As Integer 
    a(0) = 0 

    labels.Push(a) 

    model.Train(images, labels) 

    Dim imgConf As Mat 

    imgConf = CvInvoke.Imread(Pcon0, CvEnum.LoadImageType.Grayscale) 

    model.Predict(imgConf) 

    Dim PR As FaceRecognizer.PredictionResult 

    Dim dst = PR.Distance 
    Dim lbl = PR.Label 

    MsgBox(dst) 


End Sub 

End Class 

내가 거의 모든 tryed하지만 '를 해결할 수 :

여기 내 테스트 코드입니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

_ 이상한 예외가 발생했으며 예외는 무엇입니까? NullReferenceException? –

+0

그냥 uhandled excepion 말한다 : 'OpenCV : 0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows – Grey

답변

0

직접 솔루션을 찾을 수있었습니다. 흠집은 실제로 생성자에 사용 된 객체 유형과 유사합니다. 그것은 Mat 대신 VectorOfMat로되어있었습니다. 클래스가 예상했기 때문에 클래스가 작동하지 않을 수 있습니다.

Dim images As New VectorOfMat 

또 다른 문제는 생성자 자체에서 발생했습니다. 그것은 있어야했다 : 조언

Dim model As New EigenFaceRecognizer(80, Double.PositiveInfinity) 

하나 개 더 조각 : 기차 방법은 적어도 두 개의 이미지의 매트의 배열을받을 doesen't 경우, 또 다른 예외가 발생합니다. 이미지는 같은 크기이거나 (이상한) 객체가 하나 더 예외를 던질 것으로 예상됩니다.

Dim PR As FaceRecognizer.PredictionResult = model.Predict(imgConf) 

당신은 고유 얼굴을 예측 거리를 얻을 :

마지막으로 predictionresult에 대한 올바른 코드는이 문제에서 누군가를 얻을 수

Dim dis = PR.Distance 

희망을.

Ceers.