Scan raster de codes-barres multi-symboles

HPDFCreateBuiltInBarcodeDecoder scanne plusieurs symboles séparés dans le même raster, y compris des symboles linéaires mixtes, QR Code, Data Matrix ECC 200 et PDF417 pris en charge par les décodeurs natifs

L'overload existant DecodeLoadedPageBarcodes utilise automatiquement ce scanner et conserve les limites en pixels de chaque résultat avant que le pipeline de page ne les mappe en coordonnées PDF

Les résultats sont triés par position haute puis par position gauche, et les détections dupliquées ne sont fusionnées que lorsque symbologie, texte, octets bruts et position chevauchante concordent ; des payloads identiques à des positions distinctes restent des résultats distincts

Helper natif et géométrie

HPDFBarcodeRecognitionScan exporte HPDFScanBarcodeBitmap pour les appelants qui ont besoin du tableau plus riche THPDFBarcodeScanSymbols et des statistiques THPDFBarcodeScanInfo

Passez un THPDFBarcodeDecodeRequest, HPDFCreateBuiltInSingleBarcodeDecoder et THPDFBarcodeScanOptions.Default ; la factory mono-symbole conserve aussi l'accès direct au décodeur d'origine pour une sélection de régions spécifique à l'application

HPDFCreateScanningBarcodeDecoder enveloppe un IHPDFBarcodeDecoder mono-symbole fourni avec le même scan de régions, la même suppression de doublons et les mêmes budgets agrégés pour les applications qui n'ont besoin que de l'interface de décodeur ordinaire

Chaque THPDFBarcodeScanSymbol contient le record Barcode ordinaire, quatre Corners en raster, HasPerspectiveGeometry et un Diagnostic par symbole

La géométrie Data Matrix déduit une enveloppe convexe des extrema de lignes du premier plan, récupère quatre lignes de bord, intersecte les lignes adjacentes et résout une homographie à huit paramètres pour échantillonner les centres de modules par vote majoritaire à cinq points

Le décodeur essaie les tailles ECC 200 carrées et rectangulaires standard prises en charge, les rotations et les miroirs, puis vérifie les bordures finder et les blocs Reed-Solomon avant de renvoyer le texte ou les octets bruts ; rotation et projection trapézoïdale peuvent se combiner avec des dommages corrigeables des modules de données

Pour une géométrie Data Matrix vérifiée, OrientationDegrees mesure le bord supérieur canonique dans le sens horaire depuis l'axe x positif du raster, tandis que Corners suivent l'enveloppe détectée dans le sens horaire avec un coin de départ non spécifié

HPDFDataMatrixGeometry exporte HPDFLocateDataMatrixQuadrilateral et HPDFSampleBarcodeQuadrilateral, et HPDFDataMatrixDecoder exporte HPDFDecodeDataMatrixQuadrilateral pour les applications qui connaissent déjà les quatre coins projetés

Les valeurs de confiance décrivent le chemin de vérification du décodeur, et non une probabilité statistique calibrée ; les résultats ECC 200 échantillonnés en projection rapportent actuellement 0.90 après une vérification réussie de bordure et de correction d'erreurs

Pour les autres symbologies natives, les coins du helper décrivent les limites retournées alignées sur les axes et HasPerspectiveGeometry est false ; leurs valeurs de confiance et d'orientation existantes sont conservées

Budgets et publication atomique

Le scanner utilise une binarisation d'Otsu et des tuiles d'occupation de quatre pixels, puis connecte les régions de premier plan de la matrice depuis la plus grande des trois distances de voisinage bornées vers des distances plus petites ; cela essaie un symbole pivoté complet avant les fragments déconnectés, tout en conservant des retries plus serrés pour les symboles séparés et le fallback sur tout le raster pour une échelle inhabituelle ou un graphique connecté

Les régions dont les tuiles de premier plan sont déjà couvertes par des résultats vérifiés sont ignorées avant le décodage, et les pixels du bitmap source ainsi que le format pixel de l'appelant sont préservés

Les limites par défaut sont 256 décodages candidats, 67 108 864 pixels candidats au total, 268 435 456 octets de travail estimés et un délai de requête de deux secondes ; les plafonds d'entrée d'origine de 4096 par 4096 en dimension et de 4 194 304 pixels restent appliqués

MaxResults, MaxTextCodeUnits et MaxRawBytes de la requête s'appliquent à l'ensemble de résultats publié agrégé, y compris les payloads répétés à des emplacements différents

THPDFBarcodeScanInfo rapporte le nombre de candidats tentés, les pixels décodés cumulés, les candidats rejetés et les résultats dupliqués chevauchants

L'annulation se propage en tant que EHPDFOperationCancelled ; les budgets épuisés ou les erreurs de décodeur renvoient false avec un diagnostic, et tous les échecs laissent le tableau de symboles vide même après que des candidats antérieurs ont été décodés avec succès

Une entrée vide ou uniformément à faible contraste se termine avec succès avec un tableau vide, et un graphique à contraste élevé non pris en charge ne renvoie aucun symbole deviné

Périmètre de reconnaissance

Le scan de matrice essaie les groupes connectés plus grands avant les fragments plus serrés, en préservant les retries de symboles séparés et le délai d'origine ; la géométrie QR native valide les motifs finder exacts avant d'allouer et d'échantillonner la grille candidate complète

Les symboles multiples ont besoin d'une séparation de fond suffisamment visible pour le groupement de régions ; des symboles qui se touchent, des symboles qui se chevauchent, un graphique environnant dense, des bordures de localisation sévèrement endommagées, des modules projetés minuscules et une perspective extrême peuvent empêcher la localisation

Le DMRE, les surfaces courbes, la récupération des reflets photographiques et les symbologies supplémentaires au-delà de l'ensemble de décodeurs natifs existant restent hors de ce profil

Des fixtures indépendantes couvrent un collage de six symboles avec des payloads QR répétés, des images Data Matrix pivotées et trapézoïdales, de l'ECC 200 rectangulaire et une perspective combinée avec des dommages corrigeables des modules de données

Voir Reconnaissance OCR et codes-barres intégrée pour les modes de payload pris en charge et Décodage des codes-barres de page chargée pour le mapping coordonnées page-raster