- Numérisation
- Prétraitement des images numérisées
Mise en œuvre du scénario
Étape 1. Chargement d’ABBYY FineReader Engine
Étape 1. Chargement d’ABBYY FineReader Engine
Pour commencer à utiliser ABBYY FineReader Engine, vous devez créer l’objet Engine. L’objet Engine est l’objet racine de la hiérarchie des objets d’ABBYY FineReader Engine. Il fournit divers paramètres globaux, certaines méthodes de traitement, ainsi que des méthodes permettant de créer les autres objets.Pour créer l’objet Engine, vous pouvez utiliser la fonction InitializeEngine. Voir aussi d’autres méthodes pour charger l’objet Engine (Win).
C#
Étape 2. Numérisation
Étape 2. Numérisation
ABBYY FineReader Engine propose un objet ScanManager pour gérer les sources de numérisation. La propriété ScanSources de cet objet donne accès à la liste de tous les scanners disponibles, tandis que la méthode FindScanSources permet de sélectionner les scanners selon le type d’API qu’ils exposent et le type d’interface utilisateur à utiliser pour configurer les options de numérisation.Pour numériser et enregistrer les fichiers sur le disque, vous pouvez utiliser l’une des deux méthodes de l’objet ScanSource : la méthode Scan, qui ne rend pas la main tant que la numérisation n’est pas terminée, et la méthode BeginScan, qui démarre l’opération de numérisation asynchrone et rend la main immédiatement.Vous pouvez implémenter l’interface IScanCallback et l’utiliser pour recevoir des notifications sur la progression de la numérisation.Les paramètres suivants sont accessibles via l’API ABBYY FineReader Engine 12 : luminosité, couleur, résolution, type de compression d’image, angle de rotation de l’image, taille de la zone de numérisation, mode de numérisation recto-verso, mode d’alimentation automatique, pause entre les pages, et bien d’autres. Les paramètres de numérisation sont définis à l’aide de la propriété ScanSettings de l’objet ScanSource. Cette propriété est nécessaire pour accéder à l’objet ScanSourceSettings, qui donne à son tour accès aux paramètres de numérisation d’une source.Pour analyser les images de façon synchrone :
- Créez un objet ScanManager. Vous pouvez préciser si les journaux de numérisation doivent être enregistrés via le paramètre d’entrée de la méthode CreateScanManager.
- Sélectionnez la source de numérisation à l’aide de la méthode FindScanSources de l’objet ScanManager, en indiquant le type d’API et d’interface utilisateur pris en charge par le scanner.
- Si vous choisissez de ne pas afficher de boîte de dialogue afin que l’utilisateur définisse lui-même les options de numérisation, réglez ces options à l’aide de la propriété ScanSettings du ScanSource sélectionné. Sélectionnez les valeurs appropriées pour la luminosité, la résolution et les autres paramètres dans les propriétés correspondantes de l’objet ScanSourceSettings. Vous pouvez vérifier quels paramètres sont disponibles pour ce scanner à l’aide de la propriété Capabilities du ScanSource.
- Indiquez le nom du dossier dans lequel les pages numérisées seront stockées. Le nom du dossier doit être une variable BSTR, par exemple ScanFolder.
- Exécutez la méthode Scan de l’objet ScanSource, en indiquant en paramètre le type de boîte de dialogue à afficher à l’utilisateur (passez la constante SSUIT_None pour n’afficher aucune boîte de dialogue), ainsi que le chemin ScanFolder vers le dossier contenant les résultats.
- Les noms des fichiers image seront renvoyés par cette méthode sous la forme d’un objet StringsCollection. Vous pouvez récupérer les noms des fichiers image à partir de cet objet StringsCollection, puis traiter ces fichiers comme des fichiers image ordinaires.
- Créez un objet qui implémente l’interface
IScanCallback. Dans le cadre d’une opération de numérisation asynchrone, les notifications envoyées via cette interface de rappel sont très utiles. - Créez un objet ScanManager. Vous pouvez indiquer si les journaux de numérisation doivent être consignés via le paramètre d’entrée de la méthode CreateScanManager.
- Sélectionnez la source de numérisation à l’aide de la méthode FindScanSources de l’objet ScanManager, en précisant le type d’API et d’interface utilisateur pris en charge par le scanner.
- Si vous choisissez de ne pas afficher de boîte de dialogue afin que l’utilisateur puisse définir lui-même les options de numérisation, configurez ces options à l’aide de la propriété ScanSettings du ScanSource sélectionné. Sélectionnez les valeurs appropriées pour la luminosité, la résolution et les autres paramètres dans les propriétés correspondantes de l’objet ScanSourceSettings. Vous pouvez vérifier quels paramètres sont pris en charge par ce scanner à l’aide de la propriété Capabilities du ScanSource.
- Indiquez le nom du dossier dans lequel les pages numérisées seront enregistrées. Le nom du dossier doit être une variable BSTR, par exemple ScanFolder.
- Exécutez la méthode BeginScan de l’objet ScanSource, en indiquant comme paramètre le type de boîte de dialogue à afficher à l’utilisateur (passez la constante SSUIT_None pour ne pas afficher de boîte de dialogue), ainsi que le chemin ScanFolder vers le dossier contenant les résultats. Vous devez également passer le pointeur vers l’objet de rappel que vous avez créé.
- Le chemin d’accès au fichier image est renvoyé avec la notification OnImageScanned de l’interface IScanCallback, et la fin de l’opération est signalée par la notification OnScanComplete. Comme vous implémentez ces méthodes, vous pouvez choisir ce qu’il convient de faire dans chacune de ces situations. Par exemple, lorsque vous recevez le chemin d’accès à un fichier image, vous pouvez le traiter comme n’importe quel autre fichier du disque en le chargeant pour le traiter avec FineReader Engine de la manière habituelle.
C#
Étape 3. Déchargement d’ABBYY FineReader Engine
Étape 3. Déchargement d’ABBYY FineReader Engine
Une fois que vous avez fini d’utiliser ABBYY FineReader Engine, vous devez décharger l’objet Engine. Pour ce faire, utilisez la fonction exportée DeinitializeEngine.
C#
Ressources nécessaires
Optimisation supplémentaire
- Séparation des documents
- Dans ce scénario, vous devrez peut-être regrouper le flux d’images entrant en documents. Par exemple, vous pouvez connaître le nombre de pages de chaque document, ou vous assurer de la présence de pages séparatrices avec des codes-barres entre la dernière page du premier document et la première page du document suivant. Consultez le scénario de reconnaissance de codes-barres.
