2016-12-12 4 views
0

Ich habe derzeit ein Problem mit der Erkennung von invertierten QR-Code. Das Problem ist, dass es normalen QR-Code gut, aber nicht invertierten QR-Code erkennt.So scannen Sie invertierten QR-Code mit ZXing in Android

Ich habe versucht, eine Lösung auf Google und Stackoverflow zu finden, aber die meisten Fragen haben keine akzeptablen Antworten.

Ich habe diesen Artikel gesehen und ich denke, das könnte hilfreich sein, aber ich weiß nicht, wie man C++ - Datei bearbeiten. Invert pixels - zxing

Hier ist mein Code.

setContentView(R.layout.activity_simple_scanner); 
setupToolbar(); 
ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame); 
mScannerView = new ZBarScannerView(this); 
contentFrame.addView(mScannerView); 

Hier ist ein Link zum Beispiel invertierten QR-Code-Imgae. http://prntscr.com/dijmc8

Gibt es jemanden, der Lösung weiß?

+0

Ich gehe davon aus, wenn Sie sagen ‚invertiert‘ Sie bedeuten, in irgendeiner Art und Weise Farbe invertiert statt blätterte/übersetzt . Werfen Sie einen Blick auf ColorMatrix: http://Stackoverflow.com/questions/4354939/understanding-the-use-of-colormatrix-and-colormatrixcolorfilter-to-modify-a-draw oder http://stackoverflow.com/questions/ 17841787/invert-colors-of-drawable-android –

+0

Entschuldigung, aber wie kann ich das in Live-Kamera beim Scannen von QR-Code implementieren? –

+0

@MorrisonChang aktualisiert meine Frage, könnten Sie bitte überprüfen? –

Antwort

0

Guckte auf Ihr Bild und versuchte es erfolglos auf ZXing im Play Store.

Alles, was ich vorschlagen kann, ist, durch den ZXing-Code zu verfolgen, wo es Kamerarahmen verarbeitet. Beachten Sie, dass das Bild im YUV-Format vorliegt. (Beschreibung hier: How to render Android's YUV-NV21 camera image on the background in libgdx with OpenGLES 2.0 in real-time?)

Sie müssen experimentieren, um zu sehen, welche Art von Kameraeingangsschattierung erforderlich wäre, um den richtigen Kontrast zu erhalten, um ZXing zu erkennen (oder sogar nur eine bestimmte Ebene, die ZXing durchsucht). An diesem Punkt machen Sie einen Live-Kamera-Bildfilter, der aus Performancegründen in OpenGL ES 2.0 Shader oder RenderScript oder Ihrem eigenen JNI C/C++ - Code ausgeführt werden kann. Sehen Sie diese Website: http://www.bigflake.com/mediacodec/ und Grafika Projekt https://github.com/google/grafika für allgemeine Informationen - speziell die CameraCaptureActivity

Zusätzlicher Lesestoff: Android: how to display camera preview with callback?

+0

Entschuldigung, aber ich bin neu bei Android, also meinst du ich muss ZXing Bibliothek bearbeiten? –

+0

Wenn Sie Live-Kameraerkennung möchten, dann müssen Sie ZXing ändern. Wenn Sie mit einer statischen Bitmap arbeiten können, können Sie die Bitmap ändern, bevor Sie sie in ZXing einspeisen. Oder nutzen Sie den QR-Code-Maker, um verschiedene Farben zu verwenden - kompatibel mit ZXing. –

+0

Wenn wir statische Bilder verwenden, wie kann ich Ergebnisse erzielen? Ich sehe nur startCamera() und keine Funktionen für statische Bilder in ZXing. –

Verwandte Themen