Multi-symbol raster barcode scanning

HPDFCreateBuiltInBarcodeDecoder scant meerdere gescheiden symbolen in hetzelfde raster, waaronder gemengde lineaire, QR Code-, Data Matrix ECC 200- en PDF417-symbolen die de native decoders ondersteunen

De bestaande DecodeLoadedPageBarcodes-overload gebruikt deze scanner automatisch en bewaart de pixel-bounds van elk resultaat voordat de page-pipeline ze naar PDF-coördinaten mapt

Resultaten worden gesorteerd op top-positie en daarna op linkerpositie, en dubbele detecties worden alleen samengevoegd als symbology, tekst, raw bytes en overlaplocatie overeenkomen; identieke payloads op verschillende posities blijven aparte resultaten

Native helper en geometrie

HPDFBarcodeRecognitionScan exporteert HPDFScanBarcodeBitmap voor aanroepers die de rijkere THPDFBarcodeScanSymbols-array en THPDFBarcodeScanInfo-statistieken nodig hebben

Geef een THPDFBarcodeDecodeRequest, HPDFCreateBuiltInSingleBarcodeDecoder en THPDFBarcodeScanOptions.Default mee; de single-symbol-factory houdt ook directe toegang tot de oorspronkelijke decoder in stand voor applicatiespecifieke regioselectie

HPDFCreateScanningBarcodeDecoder wikkelt een meegeleverde single-symbol-IHPDFBarcodeDecoder in dezelfde region scanning, duplicate suppression en geaggregeerde budgetten voor applicaties die alleen de gewone decoder-interface nodig hebben

Elke THPDFBarcodeScanSymbol bevat het gewone Barcode-record, vier raster-Corners, HasPerspectiveGeometry en een per-symbol-Diagnostic

Data Matrix-geometrie leidt een convexe hull af uit voorgrond-extremen per rij, herstelt vier randlijnen, snijdt aangrenzende lijnen en lost een homografie met acht parameters op om modulecentra te samplen met een meerderheidsstem van vijf punten

De decoder probeert ondersteunde vierkante en standaard rechthoekige ECC 200-formaten, rotaties en spiegelingen, en verifieert daarna finder-randen en Reed-Solomon-blokken voordat hij tekst of raw bytes teruggeeft; rotatie en trapeziumprojectie kunnen gecombineerd worden met corrigeerbare schade aan datamodules

Voor geverifieerde Data Matrix-geometrie meet OrientationDegrees de canonieke bovenrand met de klok mee vanuit de positieve x-as van het raster, terwijl Corners de gedetecteerde hull met de klok mee volgen met een niet-gespecificeerde starthoek

HPDFDataMatrixGeometry exporteert HPDFLocateDataMatrixQuadrilateral en HPDFSampleBarcodeQuadrilateral, en HPDFDataMatrixDecoder exporteert HPDFDecodeDataMatrixQuadrilateral voor applicaties die de vier geprojecteerde hoeken al kennen

De confidence-waarden beschrijven het verificatiepad van de decoder, geen gekalibreerde statistische kans; projectief gesamplede ECC 200-resultaten rapporteren momenteel 0.90 na geslaagde verificatie van rand en error correction

Voor andere native symbologies beschrijven de hoeken van de helper de teruggegeven axis-aligned bounds en is HasPerspectiveGeometry false; hun bestaande confidence- en orientatiewaarden blijven behouden

Budgetten en atomaire publicatie

De scanner gebruikt Otsu-binarisatie en vier-pixel-occupatietegels, en verbindt daarna matrix-voorgrondregio's vanaf de grootste van drie begrensde buurafstanden richting kleinere afstanden; hierbij wordt eerst een compleet gedraaid symbool geprobeerd voordat losse fragmenten bekeken worden, met strakkere retries voor gescheiden symbolen en de full-raster-fallback voor ongebruikelijke schaal of verbonden artwork

Regio's waarvan de voorgrondtegels al door geverifieerde resultaten worden gedekt worden overgeslagen vóór het decoderen, en de bronpixels en het pixel format van de bitmap van de aanroeper blijven behouden

Standaardlimieten zijn 256 candidate decodes, 67.108.864 totaal aan candidate-pixels, 268.435.456 geschatte working bytes en een request-deadline van twee seconden; de oorspronkelijke plafonds van 4096 bij 4096 dimensies en 4.194.304 invoer-pixels blijven gehandhaafd

MaxResults, MaxTextCodeUnits en MaxRawBytes in de request gelden voor de gepubliceerde totale resultatenset, inclusief herhaalde payloads op verschillende locaties

THPDFBarcodeScanInfo rapporteert het aantal geprobeerde candidates, de cumulatief gedecodeerde pixels, afgewezen candidates en overlappende dubbele resultaten

Annulering propageert als EHPDFOperationCancelled; uitgeputte budgetten of decoderfouten geven false terug met een diagnostiek, en alle fouten laten de symbol-array leeg, zelfs als eerdere candidates al succesvol waren gedecodeerd

Lege of uniform laag-contrasterende invoer wordt succesvol afgerond met een lege array, en niet-ondersteund hoog-contrasterend artwork levert geen gegokt symbool op

Recognition-bereik

Matrix scanning probeert grotere verbonden groepen vóór strakkere fragmenten, met behoud van retries voor gescheiden symbolen en de oorspronkelijke deadline; native QR-geometrie valideert exacte finder-patronen voordat het volledige candidate-grid wordt toegewezen en gesampled

Meerdere symbolen hebben genoeg zichtbare achtergrondscheiding nodig voor region grouping; rakende symbolen, overlappende symbolen, dicht omliggend artwork, zwaar beschadigde locator-randen, minuscule geprojecteerde modules en extreme perspectief kunnen lokalisatie verhinderen

DMRE, gekromde oppervlakken, herstel van fotografische glans en extra symbologies buiten de bestaande native decoderset vallen nog buiten dit profiel

Onafhankelijke fixtures dekken een collage van zes symbolen met herhaalde QR-payloads, gedraaide en trapeziumvormige Data Matrix-afbeeldingen, rechthoekige ECC 200 en gecombineerd perspectief met corrigeerbare schade aan datamodules

Zie Ingebouwde OCR en barcodeherkenning voor de ondersteunde payload-modi en Loaded page barcode decoding voor de mapping van pagina- naar rastercoördinaten