# Melhorando Resultados OCR Insatisfatórios
A qualidade do OCR depende muito da entrada. Uma configuração, filtro ou ajuste que lê um documento claramente pode falhar em outro, deixando você com texto confuso ou incompleto. Quando a leitura padrão decepciona, o pacote `IronOcr.Extensions.AdvancedScan` geralmente fecha a lacuna de precisão.
A diferença se resume ao motor. `IronOCR` padrão opera no motor **Tesseract**, enquanto `IronOcr.Extensions.AdvancedScan` é alimentado por **PaddleOCR** e adiciona capacidades de aprendizado de máquina. Isso o torna bem adequado para entradas ruidosas como capturas de tela, e para fontes estruturadas como passaportes e placas de licença.
O pacote expõe métodos de leitura projetados para esses casos:
- [`ReadLicensePlate()`](/csharp/ocr/how-to/read-license-plate/)
- [`ReadPassport()`](/csharp/ocr/how-to/read-passport/)
- [`ReadPhoto()`](/csharp/ocr/how-to/read-photo/)
- [`ReadDocumentAdvanced()`](/csharp/ocr/how-to/read-table-in-document/)
- [`ReadScreenShot()`](/csharp/ocr/how-to/read-screenshot/)
## Solução
### 1. Comece com `ReadDocumentAdvanced()` e `EnhanceResolution()`
Antes de recorrer a qualquer outra configuração, emparelhe o método `ReadDocumentAdvanced()` com o filtro de pré-processamento `EnhanceResolution()`. Esta combinação resolve a maioria dos problemas de precisão que os usuários encontram com a leitura padrão.
Aplique o filtro ao `OcrInput`, depois passe a mesma entrada para `ReadDocumentAdvanced()`:
```csharp
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
```
`ReadDocumentAdvanced()` executa o motor de aprendizado de máquina PaddleOCR para analisar documentos pesados em texto, conscientes de layout, enquanto `EnhanceResolution()` aumenta e aprimora a entrada de baixa resolução antes da leitura. Baixa resolução é uma causa raiz comum de resultados ruins, então este passo de pré-processamento geralmente importa tanto quanto a troca de motor.
### 2. Alvo x64 no .NET Framework
Configure projetos .NET Framework para compilar como **x64**. AdvancedScan requer uma quantidade significativa de memória, e executá-lo sob uma arquitetura diferente pode desencadear erros de execução. Consulte o guia [Advanced Scan on .NET Framework](/csharp/ocr/troubleshooting/advanced-scan-on-net-framework/) para o conjunto completo.
## Limitações
AdvancedScan oferece forte precisão, mas algumas restrições se aplicam hoje:
- **Menos recursos de resultado:** Objetos de resultados do AdvancedScan expõem menos propriedades do que o objeto padrão `OcrResult`.
- **Tipos de retorno diferentes:** cada método de leitura retorna um tipo de objeto de resultado diferente, então verifique a Referência de API para os detalhes específicos do que você chamar.
- **Sem PDFs pesquisáveis**: construir PDFs pesquisáveis a partir da saída do AdvancedScan ainda não é suportado, embora o recurso esteja em desenvolvimento.
- **Idiomas limitados:** o pacote atualmente suporta inglês, chinês, japonês, coreano e alfabetos latinos.
[[i:(A saída PDF pesquisável não está disponível a partir de leituras AdvancedScan por agora. Se você depende desse recurso, continue no caminho de leitura padrão do IronOCR.)]]
A qualidade do OCR depende muito da entrada. Uma configuração, filtro ou ajuste que lê um documento claramente pode falhar em outro, deixando você com texto confuso ou incompleto. Quando a leitura padrão decepciona, o pacote IronOcr.Extensions.AdvancedScan geralmente fecha a lacuna de precisão.
A diferença se resume ao motor. IronOCR padrão opera no motor Tesseract, enquanto IronOcr.Extensions.AdvancedScan é alimentado por PaddleOCR e adiciona capacidades de aprendizado de máquina. Isso o torna bem adequado para entradas ruidosas como capturas de tela, e para fontes estruturadas como passaportes e placas de licença.
O pacote expõe métodos de leitura projetados para esses casos:
1. Comece com ReadDocumentAdvanced() e EnhanceResolution()
Antes de recorrer a qualquer outra configuração, emparelhe o método ReadDocumentAdvanced() com o filtro de pré-processamento EnhanceResolution(). Esta combinação resolve a maioria dos problemas de precisão que os usuários encontram com a leitura padrão.
Aplique o filtro ao OcrInput, depois passe a mesma entrada para ReadDocumentAdvanced():
var ocr = new IronTesseract();using var input = new OcrInput();input.LoadPdf("document.pdf");// Upscale and sharpen low-resolution input before readinginput.EnhanceResolution();var result = ocr.ReadDocumentAdvanced(input);Console.WriteLine(result.Text);
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
C#
ReadDocumentAdvanced() executa o motor de aprendizado de máquina PaddleOCR para analisar documentos pesados em texto, conscientes de layout, enquanto EnhanceResolution() aumenta e aprimora a entrada de baixa resolução antes da leitura. Baixa resolução é uma causa raiz comum de resultados ruins, então este passo de pré-processamento geralmente importa tanto quanto a troca de motor.
2. Alvo x64 no .NET Framework
Configure projetos .NET Framework para compilar como x64. AdvancedScan requer uma quantidade significativa de memória, e executá-lo sob uma arquitetura diferente pode desencadear erros de execução. Consulte o guia Advanced Scan on .NET Framework para o conjunto completo.
Limitações
AdvancedScan oferece forte precisão, mas algumas restrições se aplicam hoje:
Menos recursos de resultado: Objetos de resultados do AdvancedScan expõem menos propriedades do que o objeto padrão OcrResult.
Tipos de retorno diferentes: cada método de leitura retorna um tipo de objeto de resultado diferente, então verifique a Referência de API para os detalhes específicos do que você chamar.
Sem PDFs pesquisáveis: construir PDFs pesquisáveis a partir da saída do AdvancedScan ainda não é suportado, embora o recurso esteja em desenvolvimento.
Idiomas limitados: o pacote atualmente suporta inglês, chinês, japonês, coreano e alfabetos latinos.
Observe: A saída PDF pesquisável não está disponível a partir de leituras AdvancedScan por agora. Se você depende desse recurso, continue no caminho de leitura padrão do IronOCR.
Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.