Syntaxis ImageParser
De ImageParser(#ImageParser) is een module van CodX PostOffice om de verwerking van afbeeldingen te regelen.
In een XML-configuratiebestand wordt gespecificeerd hoe de afbeelding moet worden verwerkt.
Het XML-bestand bestaat uit regels (ParserRule) met beeldelementen (Element) en evaluatiecriteria (Criteria).
Voorbeeld configuratiebestand ImageParser
<ImageParser Name="Parser 1" Timeout="10000" Reference="SN-AZD, FE" Remark="Dit is een opmerking"> <ParserRule Name="Roll 1" Rotate="0, 30, 60, 90" Origin="top_left" Trim= " Bottom, Right " FirstPage="1" LastPage="3"> <Element Name="Element 1" x="100 px" y="200 px" h="50 mm" w="40 mm" Type="Text" Rotate="0, 90, 180, 270" ValidValue="[a-z]+" Prerequisite="Mandatory "SBB-CF="Alternative code"></element> <element Name="Element 2" x="200 px" y="400 px" h="50 mm" w="40 mm" Type="Barcode" BarcodeType="All" Rotate="0" PreProcess="BRectS" InvalidValue="(?<Invalid>[^[0-9a-zA-Z()-/\s\öäüéàèÖÄÜ])"></element> <element Name="Element 3" x="300 px" y="500 px" h="50 mm" w="40 mm" Type="UPOC" Rotate="0" ValidValue="[0-9]+"></element> <element Name="PostAdr1" Type="PostalAddress"ValidValue="[AdrLevel_City]"></element> <Criteria Name="Criteria 1" Operation="AND" ElementName="Element 1" RegEx="[a-z]+"><//criteria> <Criteria Name="Criteria2" Operation="AND" ElementName="Element 2" RegEx="[0-9]+"></Criteria> <Criteria Name="Criteria3" Operation="OR" ElementName="Element 3" RegEx="04[0-9]+"></Criteria> <Criteria Name="Criteria3" Operation="AND" ElementName="PostAdr1" RegEx="[AdrLevel_City]"></Criteria> </ParserRule> <ParserRule Name="Rol 2" Rotate="0, -30, -60, -90" Origin=" top_left" Trim="Top"> <Element Name="Element 1" x="100 px" y="200 px" h="50 mm" w="40 mm" Type="Text" Rotate="0, 90, 180, 270" ValidValue="[a-z]+"></element> <element name="Element 2" x="200 px" y="400 px" h="50 mm" w="40 mm" Type="Barcode" Rotate="0" ValidValue="[a-z]+"></Element> <Element Name="Element 3" x="300 px" y="500 px" h="50 mm" w="40 mm" Type="UPOC" Rotate="0" ValidValue="[0-9]+"></element> <Criteria Name="Criteria 1" Operation="AND" ElementName="Element 1" RegEx="[a-z]+"></Criteria> <Criteria Name="Criteria2" Operation="AND" ElementName="Element 2" RegEx="[0-9]+"></Criteria> <Criteria Name="Criteria3" Operation="OR" ElementName="Element 3" RegEx="04[0-9]+"></Criteria> </ParserRule>
</ImageParser>Tags Het XML-configuratiebestand is als volgtopgebouwd :
ImageParser Bevat 1 of meer tags van 'ParserRule'.
Attribuut | Beschrijving |
---|
Naam | van ImageParser | Timeout | Maximale verwerkingstijd in milliseconden | .Wanneer de time-out wordt bereikt, wordt de verwerking afgebroken en wordt er geen resultaat geretourneerd. Dit attribuut is optioneel, de standaardwaarde is 3500 ms en de maximaal toegestane time-out is 100000 ms. | Als de time-out 0 of minder is, wordt deze ingesteld op de standaardwaarde. Als de waarde groter is dan de maximaal toegestane waarde, wordt deze teruggezet op de maximumwaarde | .Verwijzing Verwijzing | naar de module/functie die deze ImageParser gebruikt | . Als een ImageParser in meerdere modules wordt gebruikt, worden de namen van de modules vermeld, gescheiden door komma's. |
De volgende waarden zijn mogelijk:- R-SCAN
CxLetterScan in de modus 'R-Scan' CxLetterScan in de modus 'Onderhoud' Module R-Scan - SCANNER
CxLetterScan in
| de modus | ' | de modus- 'Capture'
- SORT
CxLetterScan in de modus 'Sort' - DIGITAL
Digitalisering
| Opmerking over de ImageParser. |
Dit attribuut is optioneel. | SafeMode | Optioneel, waardenbereik: 0/1 (false/true), standaard: 0 (false) Indien 1 (true), werkt de ImageParser in veilige modus | .Er wordt intern slechts één thread gebruikt en verschillende optimalisaties voor minimaal RAM-geheugengebruik. Als de te verwerken afbeelding meerkleurig is of een hogere resolutie heeft dan gedefinieerd in het SafeModeResolution-attribuut, wordt de afbeelding vóór de analyse automatisch geconverteerd naar een 8-bits grijswaardenafbeelding. ATTENTIE! Gebruik deze optie alleen als er zeer grote afbeeldingen worden verwerkt! | Dit verhoogt de verwerkingstijd aanzienlijk (ongeveer 5..10 keer), pas het Timeout attribuut overeenkomstig aan. | SafeModeResolution | Optioneel, waardenbereik: 100..300 [DPI], standaard: 200 [PDI]. Alleen gebruikt als het SafeMode attribuut is ingesteld. Definieert de beeldresolutie [DPI] die wordt gebruikt in de Safe-Mode (zie hierboven) | .
ParserRule Bevat 1 of meer tags van 'Element' en 'Criteria 'Attribuut | Beschrijving | Naam | Naam van ParserRule | Rotate | Lijst van hoeken waarmee de waarde moet worden gelezen | .De hoeken worden gescheiden door komma's. De hoeken nemen met de klok mee toe van 0 tot 360°. LET OP: Elke extra hoek vermenigvuldigt de verwerkingstijd nog eens extra! | Oorsprong Oorsprong van de afbeelding | .Alle coördinaten verwijzen naar deze oorsprong. Mogelijke waarden: - top_left - top_right - bottom_left (standaard) - bottom_right Dit attribuut is optioneel. | Trim | Optioneel. | Als dit attribuut gedefinieerd is, wordt het overeenkomstige deel van de afbeelding bijgesneden dat aanzienlijk donkerder is dan de rest van de afbeelding. Mogelijke waarden zijn een combinatie van de volgende waarden, gescheiden door komma's: - Top - Bottom - Left - Right | FirstPage | Dit attribuut wordt alleen gebruikt als meerdere documenten tegelijk worden verwerkt, bijv. bij digitalisering. Deze ParserRule wordt toegepast vanaf deze pagina | .Als de te verwerken pagina kleiner is, wordt de ParserRule genegeerd. | LastPage | Dit attribuut wordt alleen gebruikt als er meerdere documenten tegelijk worden verwerkt, bijv. bij digitalisering. Deze ParserRule wordt tot aan deze pagina | toegepast.
Als de te verwerken pagina groter is, wordt de ParserRule genegeerd. |
Element Beschrijft het element dat moet worden geparseerd .Attribuut | Beschrijving |
---|
Naam | Naam van het element, moet aanwezig zijn! De CxLetterScan vereist bepaalde elementen afhankelijk van de modus (use case) | .Zie de online hulp voor de overeenkomstige modus. | Type | Type element; optioneel, standaardwaarde: tekst | .
De volgende types zijn mogelijk: - tekst | :De sectie van het element wordt geanalyseerd met OCR en de herkende tekst wordt uitgevoerd [*1]. - Barcode: Het gedeelte van het element wordt gecontroleerd op een streepjescode [*1]. - UPOC: Het gedeelte van het element wordt gecontroleerd op een streepjescode en of het een geldige UPOC is (type, client, ID, checksum) [*1]. - PostalAddress: Het gedeelte van het element wordt geanalyseerd met OCR en de adrestokenizer en het herkende adres wordt uitgevoerd [*2]. | Zie ook Postadressen. | x | X-coördinaat van de linkerbovenhoek van het element. De coördinaat verwijst naar de oorsprong van de afbeelding. Optioneel kan een eenheid worden opgegeven, standaard = px (pixel). De volgende eenheden zijn mogelijk: - px: Pixel (standaard) - % | :Percentage, gerelateerd aan de hele afbeelding - mm: Millimeter (alleen als de resolutie bekend is) | y | Y-coördinaat van de linkerbovenhoek van het element. De coördinaat verwijst naar de oorsprong van de afbeelding. Optioneel kan een eenheid worden opgegeven, standaard = px (pixel). De volgende eenheden zijn mogelijk: - px | :Pixel (standaard) - | % : | Percentage, gerelateerd aan de hele afbeelding - mm: Millimeter (alleen als de resolutie bekend is). | h | Hoogte van het element. Optioneel kan een eenheid opgegeven worden, standaard = px (pixel). De volgende eenheden zijn mogelijk: - px: Pixel (standaard) - | % : | Percentage, gerelateerd aan de hele afbeelding - mm: Millimeter (alleen als de resolutie bekend is). | w | Breedte van het element. Optioneel kan een eenheid opgegeven worden, standaard = px (pixel). De volgende eenheden zijn mogelijk: - px: Pixel (standaard) - | % : | Percentage, gerelateerd aan de hele afbeelding - mm: Millimeter (alleen als de resolutie bekend is). | BarcodeType | Type barcode | .Alleen relevant voor het type 'Barcode'. Er kunnen meerdere barcodetypes worden opgegeven. Ze worden gescheiden door komma's. De volgende barcodetypes zijn mogelijk: - Alle (of geen specificatie): Er wordt gezocht naar alle onderstaande barcodetypen.
- All1D: Er wordt gezocht naar alle 1D-streepjescodetypes - All2D: Er wordt gezocht naar alle 2D-streepjescodetypes - AustralianPostCode - Aztec - Circular2of5 - Codabar - CodablockF - Code128 - Code16K - Code39 - Code39Extended - Code39Mod43 - Code39Mod43Extended - Code93. Code93 - DataMatrix - EAN13 - EAN2 - EAN5 - EAN8 - GS1 - GS1DataBarExpanded - GS1DataBarExpandedStacked - GS1DataBarLimited - GS1DataBarStacked - GS1DataBarOmnidirectional - GS1DataBarExpandedStacked - GS1DataBarOmnidirectional . GTIN12 (UPC-A met 12 symbolen) - GTIN13 (EAN-13) - GTIN14 (I2of5 met 14 cijfers) - GTIN8 (EAN-8) - IntelligentMail - Interleaved2of5 - ITF14 (I2of5 met 14 cijfers) - MaxiCode - MICR - MicroPDF - MSI - PatchCode. MSI - PatchCode - PDF417 - Pharmacode - PostNet - PZN - QRCode - RoyalMail - RoyalMailKIX - TriopticCode39 - UPCA - UPCE - UPU Dit attribuut is optioneel, de standaardwaarde is 'Alle'. |
Rotate | Facultatief, standaard = 0 (0°). Hoek in graden [°] waarmee het element moet worden geroteerd om horizontaal van links naar rechts leesbaar te zijn | .
De hoeken worden gescheiden door komma's opgenomen. De hoeken nemen met de klok mee toe van 0 tot 360° | .
Negatieve hoeken zijn toegestaan, ze worden automatisch geconverteerd naar de corresponderende positieve hoek, bijv. -20° = + 340°. De rotatie van het element gebeurt na de rotatie van de volledige afbeelding (zie attribuut Rotate van Tag ParserRule) en na het knippen van het element volgens de attributen y,x,h, w.
LET OP: Elke extra hoek vermenigvuldigt de verwerkingstijd nog eens extra! Om foutieve lezingen van barcode- en vooral UPOC-elementen te voorkomen, is het belangrijk dat de mogelijke hoeken correct worden gedefinieerd. De intern gebruikte barcode OCR engine ondersteunt de volgende discrete rotatiehoeken: 0°, 11°, 22°, 45°, 90°, 135°, 158°, 169°, 180°, 191°, 202°, 225°, 270°, 315°, 338°, 349°. De opgegeven hoeken worden naar boven/beneden afgerond naar de dichtstbijzijnde van deze hoeken. Extra hoekspecificaties zijn verplicht als de verdraaiing groter is dan de boogtangens (tan-1) van de verhouding tussen de hoogte van de staaf en de lengte van de streepjescode. Voorbeeld: staafhoogte = 10 mm, totale lengte = 50 mm. Dus: Arctan(10/50)=11,3°. | Dus: Als de streepjescode meer dan 11° kan worden gedraaid, moet de waarde 11 worden toegevoegd als de rotatiehoek.
| PreProcess | Optioneel, voorbewerking van de afbeelding voor het OCR lezen van de streepjescode, is alleen beschikbaar voor het type streepjescode! Standaardwaarde: <empty> (geen voorbewerking) De volgende voorbewerkingen zijn mogelijk: - BRectS: kleine gebruikte gebieden uitsnijden en enkelvoudige verwerking. Verbetert het lezen van barcodes en DataMatrix. Lange verwerkingstijd.
- BRectM: Uitsnijden van gemiddeld gebruikte gebieden en enkelvoudige verwerking. Verbetert het lezen van barcodes en DataMatrix. Gemiddelde verwerkingstijd.
- BRectL: Uitsnijden van grote gebruikte gebieden en enkelvoudige verwerking. Verbetert het lezen van barcodes en DataMatrix. | Korte verwerkingstijd. | ValidValue | RegEx-expressie die een geldige waarde van het element definieert | .Het element heeft alleen een geldige waarde als het is gecontroleerd volgens de RegEx-expressie. Anders is de waarde van het element leeg. Niet te verwarren met 'RegEx' uit het criterium.
Als het attribuut 'ValidValue' niet is opgegeven of leeg is, zijn de volgende standaardwaarden van toepassing: - Tekst: "[0-9,a-z,A-Z]+" - Barcode: "[0-9,a-z,A-Z]+" - UPOC: <empty>, de waarde wordt gecontroleerd door de UPOC-syntaxis te verifiëren. |
Als een RegEx is opgegeven, wordt deze bovendien geëvalueerd volgens de UPOC-syntaxis. | InvalidValue | RegEx-expressie die alle ongeldige waarden van een element definieert | . | Het element mag geen van deze ongeldige waarden bevatten, in dat geval is het element geldig. | Als dit element is opgenomen, heeft het voorrang op het element 'ValidValue'. Als het attribuut 'InvalidValue' niet is opgegeven of leeg is, blijft de standaardwaarde leeg en is de regel voor 'ValidValue' actief. | OCRMinConfidence | Optioneel, standaard = 0, alleen beschikbaar voor de types Tekst en Postadres | .
Het attribuut bepaalt de minimale kwaliteit (Confidence) die de volledige tekst die door de OCR-herkenning wordt herkend, moet hebben voor verdere verwerking | .De globale instelling xxx wordt in elk geval toegepast op elke afzonderlijke regel! Bereik: 0% ... | 100% Goed herkende teksten hebben een betrouwbaarheid >= 50%, slechte < 30%. | Voorwaarde | Dit attribuut wordt alleen gebruikt voor digitalisering | .Het bepaalt of de waarde van dit element aanwezig moet zijn om de digitalisering te voltooien. | Als het element niet wordt gevonden, is handmatige nabewerking of vastlegging verplicht. De volgende waarden zijn mogelijk: - Optioneel - Verplicht - Geen
| SBB-CF | Dit kenmerk | wordt alleen voor digitalisering gebruikt.
Het bepaalt in welk consignment custfield de bepaalde waarde van het huidige element moet worden opgeslagen |
[*1]: Als Type = Tekst, Barcode, UPOC moeten alle attributen x,y,h,w gedefinieerd zijn! [*2]: Als Type = PostalAddress , moeten alle of geen attributen x,y,h,w worden gedefinieerd!Criteria Beschrijft de criteria waaraan moet worden voldaan om deze ParserRule in werking te laten treden . Als niet aan de criteria wordt voldaan, wordt de volgende ParserRule verwerkt. Dit moet niet worden verward met 'ValidValue' van het element! Attribuut | Beschrijving |
---|
Naam | Naam van het | criteriumOperatie | Geeft aan hoe het criterium logisch is gekoppeld. Mogelijke waarden: 'AND | ' , 'OR | 'ElementNaam | van het element dat moet worden gecontroleerd | .
RegEx | RegEx expressie waaraan moet worden voldaan. Elementen van het type PostalAddress ondersteunen GEEN criteria, de geldigheid wordt bepaald op basis van interne regels! |
Postadressen Elementen van het type PostalAddress worden als volgt verwerkt: De attributen x, y, h, w zijn optioneel . Als ze niet zijn gespecificeerd (of als ze allemaal 0 zijn), wordt de volledige afbeelding gescand op tekstblokken. Als de attributen x, y, h, w zijn gedefinieerd, wordt alleen de gedefinieerde sectie gebruikt (analoog aan het elementtype "Tekst"). De gevonden tekstblokken worden gesorteerd volgens bepaalde criteria en geanalyseerd met OCR en de SortTree.
Het eerste/best gedetecteerde adres wordt uitgevoerd. Als er GEEN waarde als ValidValue is gedefinieerd, worden alle gedetecteerde adresblokken als een string geretourneerd, er is GEEN analyse met de SortTree !Specifieke attributen voor elementtype "PostalAddress " De volgende attributen zijn specifiek voor elementen van het type "PostalAddress" .
ATTENTIE: de attributen CutLength/CutWidth en ExclusionZone* sluiten elkaar uit, slechts één van de twee kan worden gebruikt! Voor nieuwe definities moet de uitsluitingszone worden gedefinieerd met ExclusionZone*.
Attribuut | Beschrijving |
---|
ValidValue | De volgende pseudo-regex (standaard: <empty>) worden ondersteund: - <empty> (standaard) - [AdrLevel_Country] - [AdrLevel_City] - [AdrLevel_Street] - [AdrLevel_House] - [AdrLevel_Name | ]CutLength | Optioneel, standaard = 0 (geen uitsluitingszone) | .
Definieert een uitsluitingszone in [mm] voor automatisch gedetecteerde tekstblokken (x,y,h,w = 0) aan beide lange zijden van de afbeelding. | Gedetecteerde tekstblokken die deze zone overlappen, worden genegeerd. | CutWidth | Optioneel, standaard = 0 (geen uitsluitingszone). Definieert een uitsluitingszone in [mm] voor automatisch gedetecteerde tekstblokken (x,y,h,w = 0) aan beide korte zijden van de afbeelding | .Gedetecteerde tekstblokken die deze zone overlappen, worden genegeerd. | ValidateAddress | Optioneel, waardenbereik: 0/1, standaard: 0 Definieert hoe de gevonden adressen worden gecontroleerd volgens ValidValue | .
0: De controle wordt uitgevoerd door decompositie via tokenizer en test op niet-leeg (tot het niveau dat is gedefinieerd door ValidValue ) 1: De controle wordt uitgevoerd aan de hand van de gebiedsgegevens van het districtsbestuur | .Het adres moet geldig zijn tot ten minste het door ValidValue | gedefinieerdeniveau. | ExclusionZoneTop | Optioneel, indien niet aanwezig wordt de standaardinstelling gebruikt. Definieert een uitsluitingszone aan de bovenkant [mm]. Tekstblokken die deze zone overlappen, worden genegeerd | .ExclusionZoneBottom | Optioneel, indien niet aanwezig wordt de standaardinstelling gebruikt | . |
Definieerteen uitsluitingszone | aande onderkant [mm]. Tekstblokken die deze zone overlappen, worden genegeerd. | ExclusionZoneLeft | Optioneel, indien niet aanwezig wordt de standaardinstelling gebruikt. Definieert een uitsluitingszone aan de linkerkant [mm]. Tekstblokken die deze zone overlappen, worden genegeerd | .ExclusionZoneRight | Optioneel, indien niet aanwezig wordt de standaardinstelling gebruikt | . |
Definieert een "uitsluitingszone" aan de rechterkantlijn [mm]. Tekstblokken die deze zone overl | appen, worden genegeerd. DisableCodingZone | Optioneel, waardenbereik: 0/1 (false/true), standaard: 0 (false) Indien 1 (true), worden de intern vast gedefinieerde codeerzones niet toegepast | .DisableFrankingZone | Optioneel, waardenbereik: 0/1 (false/true), standaard: 0 (false) Indien 1 (true), worden de intern vast gedefinieerde frankeerzones niet toegepast | . |
RefPointMode | Optioneel, standaard = 0 (geen uitsluitingszone). De volgende pseudo-regex (standaard: <empty>) worden ondersteund: - AutoBasedFullImage - AutoBasedExclZone - ValueBasedExclZone
Als AutoBasedExclZone of ValueBasedExclZone is gedefinieerd, moeten de attributen CutLength en CutWidthNIET zijn gedefinieerd | .De uitsluitingszones moeten worden gedefinieerd door ExclusionZone*.
Als ValueBasedExclZone is gedefinieerd: |
-dan moeten beide attributen RefPointX en RefPointY gedefinieerd zijn - de attributen CutLength en CutWidth mogen NIET gedefinieerd zijn - DisableCodingZone en DisableFrankingZone moeten True zijn
| RefPointX | referentiepunt X-coodinaat in [mm] | [%] of pixels (vanaf links) Alleen gebruikt als RefPointMode = ValueBasedExclZone | RefPointY | Referentie puntY-coodinaat in [mm], [%] of pixels (vanaf boven) Alleen gebruikt als RefPointMode = ValueBasedExclZone |
Functionaliteit Functionaliteit en verdere informatie zijn te vinden in de AdminDoc (zoek op 'ImageParser') Zie ook:
|