2017-10-30 10 views
0

私は、EMGUCVライブラリを使用しているフォルダ内の画像に対して顔認識を実行するはずのVB.NETでWebアプリケーションを実装しようとしています。とにかく、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 

私は、ほぼすべてをしようと試みたが、」それを解決することができます。どんな助けでも本当に感謝します。

+0

_a奇妙な例外が発生しました。その例外は何ですか? NullReferenceException? –

+0

それは単に例外を処理すると言う: 'OpenCV:0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows – Grey

答えて

0

自分で解決策を見つけることができました。 実際には、私はコンストラクタに使用したオブジェクトの型と同じようにシンプルなものでした。それはMatの代わりにVectorOfMatであるはずだった。クラスは配列を予期していたので動作できませんでした。

Dim images As New VectorOfMat 

もう1つの問題はコンストラクタ自体にありました。これは、することになった。アドバイスの

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

もう一つの作品:電車の方法は、少なくとも2枚の画像のマットの配列を受け取るdoesen't場合、それは別の例外がスローされます。画像は、オブジェクトがもう1つ例外をスローするのと同じサイズまたは(奇妙な)ものと想定されます。

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

、あなたは固有顔予測距離取得:

最後にpredictionresultのための正しいコードがあり、これはトラブルのうち誰かを得ることができます

Dim dis = PR.Distance 

が希望を。

セイラー。