- Digitalização
- Pré-processamento de imagens digitalizadas
Implementação do cenário
Etapa 1. Carregando o ABBYY FineReader Engine
Etapa 1. Carregando o ABBYY FineReader Engine
Para começar a usar o ABBYY FineReader Engine, você precisa criar o objeto Engine. O objeto Engine é o objeto de nível superior na hierarquia de objetos do ABBYY FineReader Engine e fornece várias configurações globais, alguns métodos de processamento e métodos para criar os outros objetos.Para criar o objeto Engine, você pode usar a função InitializeEngine. Veja também outras formas de carregar o objeto Engine (Win).
C#
Etapa 2. Digitalização
Etapa 2. Digitalização
O ABBYY FineReader Engine oferece o objeto ScanManager para gerenciar as fontes de digitalização. A propriedade ScanSources desse objeto fornece acesso à lista de todos os scanners disponíveis, enquanto o método FindScanSources permite selecionar os scanners pelo tipo de API que eles fornecem e pelo tipo de interface do usuário que você deseja usar para definir as opções de digitalização.Para digitalizar e salvar os arquivos em disco, você pode usar um destes dois métodos do objeto ScanSource: o método Scan, que não retorna até que a digitalização seja concluída, e o método BeginScan, que inicia a operação de digitalização assíncrona e retorna imediatamente.Você pode implementar a interface IScanCallback e usá-la para receber notificações sobre o progresso da digitalização.Os seguintes parâmetros são acessíveis por meio da API do ABBYY FineReader Engine 12: brilho, cor, resolução, tipo de compressão de imagem, ângulo de rotação da imagem, tamanho da área de digitalização, modo de digitalização duplex, modo de alimentador automático, pausa entre páginas e outros. Os parâmetros de digitalização são definidos por meio da propriedade ScanSettings do objeto ScanSource. Essa propriedade é necessária para acessar o objeto ScanSourceSettings, que, por sua vez, fornece acesso às configurações de digitalização de uma fonte.Para digitalizar as imagens de forma síncrona:
- Crie um objeto ScanManager. Você pode especificar se os logs de digitalização devem ser gravados por meio do parâmetro de entrada do método CreateScanManager.
- Selecione a origem de digitalização com o método FindScanSources do objeto ScanManager, especificando a API e o tipo de interface do usuário que devem ser suportados pelo scanner.
- Se você optar por não exibir nenhuma caixa de diálogo para que o usuário defina as opções de digitalização, ajuste essas opções usando a propriedade ScanSettings da ScanSource selecionada. Selecione os valores apropriados de brilho, resolução e outros parâmetros nas propriedades correspondentes do objeto ScanSourceSettings. Você pode verificar quais configurações estão disponíveis para esse scanner usando a propriedade Capabilities da ScanSource.
- Especifique o nome da pasta em que as páginas digitalizadas serão armazenadas. O nome da pasta deve ser uma variável do tipo BSTR, por exemplo, ScanFolder.
- Execute o método Scan do objeto ScanSource, informando como parâmetro o tipo de caixa de diálogo a ser exibida ao usuário (passe a constante SSUIT_None para não exibir nenhuma caixa) e o caminho de ScanFolder para a pasta com os resultados.
- Os nomes dos arquivos de imagem serão retornados por este método como um objeto StringsCollection. É possível obter os nomes dos arquivos de imagem desse objeto StringsCollection e, em seguida, processar os arquivos como arquivos de imagem comuns.
- Crie um objeto que implemente a interface IScanCallback. No caso de uma operação de digitalização assíncrona, as notificações da interface de callback são muito úteis.
- Crie um objeto ScanManager. É possível especificar se os logs de digitalização devem ser gravados por meio do parâmetro de entrada do método CreateScanManager.
- Selecione a origem de digitalização usando o método FindScanSources do objeto ScanManager, especificando a API e o tipo de UI que o scanner deve suportar.
- Se você optar por não exibir uma caixa de diálogo para que o próprio usuário configure as opções de digitalização, ajuste essas opções usando a propriedade ScanSettings do ScanSource escolhido. Selecione os valores apropriados de brilho, resolução e dos outros parâmetros nas propriedades correspondentes do objeto ScanSourceSettings. Você pode verificar quais configurações estão disponíveis para esse scanner usando a propriedade Capabilities do ScanSource.
- Especifique o nome da pasta em que as páginas digitalizadas serão armazenadas. O nome da pasta deve ser uma variável do tipo BSTR, por exemplo, ScanFolder.
- Execute o método BeginScan do objeto ScanSource, fornecendo como parâmetro o tipo de caixa de diálogo a ser exibida ao usuário (passe a constante SSUIT_None para não exibir nenhuma caixa) e o caminho de ScanFolder até a pasta com os resultados. Você também precisa passar o ponteiro para o objeto de callback que criou.
- O caminho para o arquivo de imagem é retornado pela notificação OnImageScanned da interface IScanCallback, e a conclusão da operação é sinalizada pela notificação OnScanComplete. Como você está implementando esses métodos, pode escolher o que fazer em cada uma dessas situações. Por exemplo, ao receber o caminho para um arquivo de imagem, você pode trabalhar com ele como com qualquer outro arquivo em disco, carregando-o para processamento com o FineReader Engine da forma usual.
C#
Etapa 3. Descarregando o ABBYY FineReader Engine
Etapa 3. Descarregando o ABBYY FineReader Engine
Depois de concluir o trabalho com o ABBYY FineReader Engine, você precisa descarregar o objeto Engine. Para fazer isso, use a função exportada DeinitializeEngine.
C#
Recursos necessários
Otimização adicional
- Separação de documentos
- Nesse cenário, pode ser necessário agrupar o fluxo de imagens de entrada em documentos. Por exemplo, você pode saber o número de páginas de cada documento ou garantir que haja páginas separadoras com códigos de barras entre a última página do primeiro documento e a primeira página do documento seguinte. Consulte o cenário de reconhecimento de código de barras.
