2016-06-20 6 views
0

Ich mache ein Programm in C#, die Qr-Codes von einem Tag (mit Sicherheitskameras) erkennen und scannen müssen, die Menschen an ihre Brust kleben, und als zweite Sicherheitsschicht müssen auch ihre erfassen Gesichter und passen sie in einer Datenbank an. Jetzt konnte ich mit der Gesichtserkennung gut umgehen, aber das Programm konnte nicht mehr als einen Qr-Code gleichzeitig lesen. Wie könnte ich damit umgehen? Ich benutze ZXing's Bibliothek sowie Emgu.cv. Gibt es bessere Möglichkeiten? Mein Code für QR-Lesung ist:Mehrere QRCode-Erkennung von Video-Stream

 bitmap = frame.Bitmap; 
     txtQreader.Text = Qrreader(bitmap); //it's inside an if, not that it matters :p 


    private string Qrreader(Bitmap x) 
{ 
    BarcodeReader reader = new BarcodeReader { AutoRotate = true, TryHarder = true }; 
    Result result = reader.Decode(x); 
    string decoded = result.ToString().Trim(); 
    return decoded; 
} 
+1

Weitere Informationen finden Sie unter Erstellen eines minimierten und verifizierbaren Beispiels http://stackoverflow.com/help/mcve Ich vermute jedoch, dass Sie ein vollständiges Bild an den 'Qrreader' übergeben. Sie sollten jeden QR im Bild segmentieren und dann einzeln an "Qrreader" übergeben. – andrew

+0

@andrew Wusste nicht, dass es an Informationen fehlte, tut mir leid (neu im Stapel). Das ist genau mein Problem. Wie man jeden QR aussortiert. –

+0

Willkommen bei Stack. Dies könnte genug Informationen für eine normale Programmierfrage sein, aber für Computer Vision Probleme sollten Sie 3 Bilder enthalten. '1. Eingang 2. aktueller (falscher) Ausgang 3. gewünschter Ausgang "Wenn ich auf deinen Code schaue, sehe ich keine Probleme, aber das Zeigen der Bilder würde helfen, das Problem zu enthüllen. Wenn Sie einen ganzen "Rahmen" mit mehreren QR-Codes in einem Rahmen eingeben, dekodiert vielleicht nur 'Qrreader' den ersten gefundenen Code. Ich denke, Sie müssen jeden QR-Code identifizieren. Erstellen Sie dann ein Unterbild mit nur den QR-Codes und senden Sie das Unterbild an "Qrreader". Haben Sie diesen Ansatz versucht? – andrew

Antwort

1

Nun ist das Problem gelöst, nachdem eine andere Website Beratung wurde mir gesagt, dass IMultiBarcodereader verwendet, wird ein Array mit allen decodierten Informationen in mehreren Codes enthalten zurückzukehren. Auch reader.Decode(x) muss in reader.Decodemultiple(x) gemacht werden.