Seite 1 von 2

Tester für Barcode OCR gesucht

Verfasst: 11.11.2006 15:44
von Kukulkan
Hallo,

Ich habe eine DLL in PB geschrieben, welche in Bitmaps (BMP, JPG, PNG und TIF) nach Barcodes sucht und diese ausliest. Also eine Barcode OCR...

Jetzt suche ich Tester für die DLL. Ich möchte folgendes wissen:

- Hat es geklappt (Barcodes gefunden)?
- Mit wieviel DPI und Farbtiefe war das Bild gescannt?
- Hatte der Barcode "schräglage"?


Ich vermute mal, dass 300 DPI und S/W das minimum sind (meine Tests).

Aktuell kann die DLL Barcodes in den folgenden Typen erkennen:
- Code39
- Code128 incl. Prüfzifferprüfung
- EAN13 incl. Prüfzifferprüfung

Sie müssen (noch) waagerecht im Bild liegen (normal oder auf dem Kopf) und dürfen so ca 5° bis 10° schräg stehen (meine Tests).

Hier der Download-Link:
http://www.x-beliebig.info/Download/INBarcodeOCR.zip

Hier die Vorab-Doku:

Code: Alles auswählen

; INBarcodeOCR documentation
;
; The DLL provides the following functions:
;
; GetBarcodesFile(Filename)
; --------------------------------------------------------------------
; Retrieves the barcodes in a given image-file (BMP, JPG, PNG, TIF)
; Returns the number of barcodes found
; Returns -1 for an error (file not found)
; Returns -2 if not registered

; GetBarcodesClipboard()
; --------------------------------------------------------------------
; Retrieves the barcodes in a given image in clipboard
; Returns the number of barcodes found
; Returns -1 for an error (no image in clipboard)
; Returns -2 if not registered

; GetBarcodesResult()
; --------------------------------------------------------------------
; Returns the result of the barcode OCR. Returns the following string:
; X TAB Y TAB Width TAB Height TAB Codetype TAB Code CR
; X TAB Y TAB Width TAB Height TAB Codetype TAB Code CR
; TAB = ASCII 9
; CR  = ASCII 13

; GetBarcodeVersionInfo()
; --------------------------------------------------------------------
; Returns the version of this DLL

; RegisterBarcodeDLL(Password)
; --------------------------------------------------------------------
; Registers this DLL using a password you got after purchase.
; Returns 0 for success
; Returns -1 for failure
Hier ein PB4 Beispielaufruf: (mit Debugger starten um die Ausgabe zu sehen)

Code: Alles auswählen

; Test for INBarcodeOCR.dll

Filename.s = "c:\Bild.bmp"

If OpenLibrary(0, "INBarcodeOCR.dll")
  ; show version information
  Debug "Version: " + PeekS(CallFunction(0, "GetBarcodeVersionInfo"))
  
  ; register the dll
  If CallFunction(0, "RegisterBarcodeDLL", "beta") = 0
  
    ; start OCR and find all barcodes
    Ret.l = CallFunction(0, "FindBarcodesFile", Filename.s)
    
    If Ret.l > 0
      ; show the result
      Result.s = PeekS(CallFunction(0, "GetBarcodesResult"))
      Debug "Barcode result: " + Result.s
    EndIf
    
    If Ret.l = 0
      Debug "No barcodes found"
    EndIf
    
    If Ret.l < 0
      Debug "Error " + Str(Ret.l)
    EndIf
  
  Else

    Debug "Wrong password" ; not correct registered
  
  EndIf
  CloseLibrary(0)
EndIf
Wer einen Beispielcode in VB6 benötigt soll sich melden.

Das Passwort für diese DLL ist "beta" (ohne Anführungszeichen).

Nein, ich kann den Source nicht veröffentlichen da hier eine Menge KnowHow drinnensteckt und das ganze später als Shareware-DLL verkauft werden soll (ich vermute mal 20,- EUR je Runtime oder 600,- EUR für eine Runtime-Freie Version. Das ist aber noch offen...).

Ich freue mich auf Rückmeldungen!

Volker

Verfasst: 11.11.2006 15:54
von MVXA
Habe leider nicht direkt die Möglichkeit die DLL zu testen außer in wine aber
da spankt die IDE bischen rum. Ich kann dir aber gerne eine Sammlung an
Barcodes schicken, wenn du magst.

Verfasst: 15.11.2006 17:14
von Kukulkan
Dank der Hilfe eines englischen Board-Members konnte ich die Library verbessern. Ich hab das ZIP-File aus dem ersten Post aktualisiert:

Neu:
- Code39 Bugs entfernt
- optionale Code39 Checksummen-kalkulation
- bessere Positionserkennung von Barcodes
- Funktionen zum dekodieren einzelner Barcodes
- Dokumentation als pdf

Für Informationen über die Funktionen und die Verwendung in VB6 und PureBasic findet Ihr im PDF im ZIP-File.

Wäre schön wenn es jemand mit Code128 und EAN13 testen könnte...

Gute Tester bekommen eine kostenlose Lizenz für die finale DLL.

Volker

Verfasst: 16.11.2006 10:14
von Kukulkan
Hallo,

Hab die DLL nochmals verbessert. Es gab das Problem das manchmal ein Barcode zweimal erkannt wurde. Das ist jetzt gefixt. Ebenfalls ist jetzt ein Testtool im ZIP enthalten.

Download über den Link im ersten Post.

Grüsse,

Volker

Verfasst: 16.11.2006 18:56
von bluejoke
Hallo!

Das Testtool findet bei mir überhaupt nichts, obwohl ich extra ein Flaschenetikett eingescannt habe - von geringer Auflösung bis 1200, mit Farbe und ohne Farbe und danach auch noch nachbearbeitet... Das Testtool kopiert aber das ganze Bild in den "output"-Ordner, schneidet aber nichts weg. Ich hatte zwischendrin auch den Beispielcode aus der PDF versucht, der hat aber auch keinen Barcode gefunden... Ist das nun ein Barcode der nicht unterstützt wird, oder hat dein Programm Probleme?

Simon

Verfasst: 16.11.2006 20:59
von Kukulkan
Hi Simon,

Das Testtool benötigt die DLL im selben Verzeichnis (oder System-Verzeichnis). Man gibt dem Testtool ein Verzeichnis in welchem Bilder mit Barcodes sind. Dann erstellt es ein 'output' Verzeichnis und kopiert dort die gefundenen Bilder (als jpg) hinein. Der Unterschied ist, dass es auf dem Ausgabebild die gefundenen Barcodes einrahmt (den Erkennungsbereich) und oben links am Rahmen den Codetyp und den erkannten Code ausgibt. Wenn der Barcode nicht eingerahmt ist, dann hat die DLL den nicht erkannt (bei 200 bis 300DP sollte sie das aber). Kannst Du mir so ein 200 und 300 DPI Bild zukommen lassen?

Eine Flasche sollte einen EAN13 Code haben. Schau mal nach ob im Ausgabebild der Barcode wirklich nicht eingerahmt und beschriftet ist. Ich hätte das Testtool wohl beschreiben sollen...

Volker

Verfasst: 17.11.2006 13:27
von Kukulkan
Neue Version:

- Verbesserte Erkennung von Barcodes
- Erkennt nun auch UTC-A und EAN8

Download über URL im ersten Post!

Grüsse,

Volker

Verfasst: 22.11.2006 12:15
von Kukulkan
Hallo,

Der Vollständigkeit halber hier ein Update:

Die DLL ist nun fertig und als kommerzielles Produkt erhältlich. Der Leistungsumfang ist nun:

- erkennt EAN13 (mit Prüfsummenberechnung)
- erkennt EAN8 (mit Prüfsummenberechnung)
- erkennt UPC-A (mit Prüfsummenberechnung)
- erkennt Code128 (mit Prüfsummenberechnung)
- erkennt Code39 (mit optionaler Prüfsumme)
- erkennt 2/5 interleaved
- findet die Barcodes in ganzen Dokumenten
- unterstützt BMP, TIF, JPG und PNG
- liefert Position, Typ und Inhalt jedes gefundenen Barcodes
- Methoden um separate Barcode-Bitmaps auszulesen
- erkennt auch Barcodes die auf dem Kopf stehen
- funktioniert unter W98/ME/2000/2000 Server/XP/2003 Server
- englische Dokumentation als PDF-Datei
- Nur eine DLL ohne Runtimes

Mehr dazu unter http://www.inspirant.de/index.php?ref=prodinbarcodeocr

Grüsse,

Volker

Verfasst: 06.12.2006 15:58
von Kukulkan
Hallo,

Es gab ein neues Update:

Neben einer weiter gesteigerten Geschwindigkeit und besserer Erkennungsqualität ist das jetzt der aktuelle Leistungsumfang:

(neues ist grün)

- erkennt EAN13 (mit Prüfsummenberechnung)
- erkennt EAN8 (mit Prüfsummenberechnung)
- erkennt UPC-A (mit Prüfsummenberechnung)
- erkennt Code128 (mit Prüfsummenberechnung)
- erkennt Code39 (mit optionaler Prüfsumme)
- erkennt 2/5 interleaved
- findet die Barcodes in ganzen Dokumenten
- unterstützt BMP, TIF, JPG und PNG
- liefert Position, Typ, Ausrichtung und Inhalt jedes gefundenen Barcodes
- Methoden um separate Barcode-Bitmaps auszulesen
- erkennt auch Barcodes die vertikal oder auf dem Kopf stehen
- funktioniert unter W98/ME/2000/2000 Server/XP/2003 Server
- englische Dokumentation als PDF-Datei
- Nur eine DLL ohne Runtimes

Mehr dazu unter http://www.inspirant.de/index.php?ref=prodinbarcodeocr

Grüsse,

Volker

Verfasst: 16.03.2007 11:04
von Kukulkan
Hallo,

Es gab ein neues Update dieser DLL (V1.3):

Hier die Features:

- erkennt EAN128 (mit Prüfsummenberechnung)
- erkennt EAN13 (mit Prüfsummenberechnung)
- erkennt EAN8 (mit Prüfsummenberechnung)
- erkennt UPC-A (mit Prüfsummenberechnung)
- erkennt Code128 (mit Prüfsummenberechnung)
- erkennt Code39 (mit optionaler Prüfsumme)
- erkennt 2/5 und 2/5 interleaved
- findet die Barcodes in ganzen Dokumenten
- unterstützt BMP, TIF, JPG und PNG
- NEU: verarbeitet direkt auch PDF *
- NEU: konvertiert PDF zu Image und Images zu PDF *
- liefert Position, Typ, Ausrichtung und Inhalt jedes gefundenen Barcodes
- Methoden um separate Barcode-Bitmaps auszulesen
- erkennt auch Barcodes vertikal oder auf dem Kopf stehend
- funktioniert unter W98/ME/2000/2000 Server/XP/2003 Server
- englische Dokumentation als PDF-Datei
- keine Runtimes benötigt
- alternative ActiveX-Schnittstelle mitgeliefert (VBScript, ASP, VB6, .NET...)

*) PDF-Unterstützung in der DEMO Version nicht eingebunden

Grüsse,

Volker