Scanning de barcodes raster multi-símbolo

HPDFCreateBuiltInBarcodeDecoder escaneia múltiplos símbolos separados no mesmo raster, incluindo símbolos lineares mistos, QR Code, Data Matrix ECC 200 e PDF417 suportados pelos decoders nativos

O overload existente de DecodeLoadedPageBarcodes usa este scanner automaticamente e retém os limites em pixels de cada resultado antes de a pipeline de páginas mapeá-los para coordenadas PDF

Os resultados são ordenados pela posição top e depois pela posição left, e detecções duplicadas são mescladas apenas quando symbology, texto, bytes raw e posição sobreposta concordam; payloads idênticos em posições separadas permanecem resultados separados

Helper nativo e geometria

HPDFBarcodeRecognitionScan exporta HPDFScanBarcodeBitmap para chamadores que precisam do array mais rico de THPDFBarcodeScanSymbols e das estatísticas de THPDFBarcodeScanInfo

Passe um THPDFBarcodeDecodeRequest, HPDFCreateBuiltInSingleBarcodeDecoder e THPDFBarcodeScanOptions.Default; a factory de símbolo único também preserva o acesso direto ao decoder original para seleção de regiões específica da aplicação

HPDFCreateScanningBarcodeDecoder envolve um IHPDFBarcodeDecoder de símbolo único fornecido com o mesmo scanning de regiões, supressão de duplicatas e orçamentos agregados, para aplicações que só precisam da interface comum de decoders

Cada THPDFBarcodeScanSymbol contém o record comum de Barcode, quatro Corners do raster, HasPerspectiveGeometry e um Diagnostic por símbolo

A geometria de Data Matrix deriva um convex hull dos extremos de linhas do primeiro plano, recupera quatro linhas de bordas, intersecta linhas adjacentes e resolve uma homografia de oito parâmetros para amostrar os centros de módulos com uma votação de maioria de cinco pontos

O decoder tenta tamanhos quadrados e retangulares padrão suportados de ECC 200, rotações e espelhamentos, e depois verifica bordas de finders e blocos Reed-Solomon antes de retornar texto ou bytes raw; rotação e projeção trapezoidal podem ser combinadas com dano corrigível de data modules

Para geometria de Data Matrix verificada, OrientationDegrees mede o edge superior canônico no sentido horário a partir do eixo x positivo do raster, enquanto Corners seguem o hull detectado no sentido horário com um canto inicial não especificado

HPDFDataMatrixGeometry exporta HPDFLocateDataMatrixQuadrilateral e HPDFSampleBarcodeQuadrilateral, e HPDFDataMatrixDecoder exporta HPDFDecodeDataMatrixQuadrilateral para aplicações que já conhecem os quatro cantos projetados

Os valores de confiança descrevem o path de verificação do decoder, e não uma probabilidade estatística calibrada; resultados de ECC 200 amostrados projetivamente atualmente reportam 0.90 após a verificação bem-sucedida de bordas e correção de erros

Para as demais symbologies nativas, os cantos do helper descrevem os limites retornados alinhados aos eixos, e HasPerspectiveGeometry é false; os valores existentes de confiança e orientação delas são retidos

Orçamentos e publicação atômica

O scanner usa binarização Otsu e tiles de ocupação de quatro pixels, e depois conecta as regiões de primeiro plano da matriz a partir da maior de três distâncias delimitadas de vizinhança em direção a distâncias menores; isso tenta um símbolo completo rotacionado antes de fragmentos desconectados, retendo retries mais justos para símbolos separados e o fallback de raster completo para escala incomum ou arte conectada

Regiões cujos tiles de primeiro plano já estão cobertos por resultados verificados são puladas antes da decodificação, e os pixels e o pixel format do bitmap de origem do chamador são preservados

Os limites default são 256 decodes candidatos, 67.108.864 pixels candidatos totais, 268.435.456 bytes estimados de trabalho e um deadline de requisição de dois segundos; os tetos originais de entrada de 4096 por 4096 de dimensão e 4.194.304 pixels permanecem aplicados

MaxResults, MaxTextCodeUnits e MaxRawBytes na requisição se aplicam ao conjunto agregado de resultados publicado, incluindo payloads repetidos em localizações diferentes

THPDFBarcodeScanInfo reporta a contagem de candidatos tentados, pixels cumulativos decodificados, candidatos rejeitados e resultados duplicados sobrepostos

O cancelamento propaga como EHPDFOperationCancelled; orçamentos esgotados ou erros de decoders retornam false com um diagnóstico, e todas as falhas deixam o array de símbolos vazio mesmo depois de candidatos anteriores terem sido decodificados com sucesso

Entrada em branco ou uniformemente de baixo contraste termina com sucesso com um array vazio, e arte de alto contraste não suportada não retorna símbolo adivinhado

Escopo de reconhecimento

O scanning de matrizes tenta grupos conectados maiores antes de fragmentos mais justos, preservando os retries de símbolos separados e o deadline original; a geometria nativa de QR valida os finder patterns exatos antes de alocar e amostrar o grid completo de candidatos

Múltiplos símbolos precisam de separação de fundo visível suficiente para o agrupamento de regiões; símbolos encostados, símbolos sobrepostos, arte densa ao redor, bordas de localizadores gravemente danificadas, módulos projetados minúsculos e perspectiva extrema podem impedir a localização

DMRE, superfícies curvas, recuperação de reflexos fotográficos e symbologies adicionais além do conjunto existente de decoders nativos permanecem fora deste perfil

Fixtures independentes cobrem uma colagem de seis símbolos com payloads QR repetidos, imagens de Data Matrix rotacionadas e trapezoidais, ECC 200 retangular e perspectiva combinada com dano corrigível de data modules

Veja Reconhecimento nativo de OCR e barcodes para os modos de payload suportados e Decodificação de barcodes de páginas carregadas para o mapeamento de coordenadas página-para-raster