Comment créer un scanner de documents à l’aide de Python.
Vous pouvez souhaiter numériser un fichier pour conserver un espace physique ou produire une sauvegarde de conservation. Dans tous les cas, écrire un programme capable de convertir les images de vos soumissions papier directement dans un format typique est un travail pour lequel Python se distingue.
En utilisant un mélange de bibliothèques appropriées, vous pouvez construire une petite application pour numériser des documents. Votre programme prendra une photo d’un document physique comme entrée, utilisera un certain nombre de techniques de traitement d’image à elle, ainsi que le résultat d’une version numérisée de l’entrée.
Préparation de votre environnement
Pour suivre ce court article, vous devez connaître avec les éléments essentiels de Python. Vous devez en outre avoir une compréhension de la manière exacte de travailler avec la bibliothèque Python NumPy.
Ouvrez n’importe quel type d’IDE Python, et produisez également 2 documents Python. Appelez l’un main.py et aussi l’autre transform.py. Exécutez ensuite la commande suivante sur le terminal pour monter les collections appelées.
Vous allez certainement utiliser OpenCV-Python pour prendre l’image en entrée et effectuer quelques manipulations d’images. Imutils pour redimensionner les photos d’entrée et de sortie. scikit-image pour appliquer un seuil sur l’image. NumPy vous aidera certainement à travailler avec des variétés.
Attendez la fin de l’installation ainsi que la mise à niveau des squelettes du projet par l’IDE. Une fois la mise à niveau des squelettes terminée, vous vous préparez à commencer à coder. Le code source complet est disponible dans une base de données GitHub.
Importation des bibliothèques installées
Ouvrez les documents main.py, et importez les collections que vous avez montées sur le réglage. Cela vous permettra d’appeler et également d’utiliser leurs fonctions lorsque cela est essentiel.
Ignorez l’erreur lancée sur perspective_transform. Elle disparaîtra certainement lorsque vous finirez de desservir les données de transform.py.
Prendre ainsi que redimensionner l’entrée
Prenez une photo claire du document que vous voulez numériser. Assurez-vous que les quatre bords du document et son contenu apparaissent. Dupliquez l’image dans le même dossier que celui où vous enregistrez les documents du programme.
Passez le cours de la photo d’entrée à OpenCV. Faites une copie de l’image originale car vous en aurez besoin pendant l’amélioration du point de vue. Séparez l’élévation de la photo initiale par l’élévation à laquelle vous souhaitez la redimensionner. Cela permettra de conserver la proportion des éléments. En fin de compte, obtenez la photo redimensionnée.
Le résultat du code ci-dessus est conforme :
Vous avez actuellement redimensionné la hauteur de l’image initiale à 500 pixels.
Conversion de l’image redimensionnée en niveaux de gris.
Convertissez la photo RVB redimensionnée en niveaux de gris. La majorité des bibliothèques de traitement d’images ne travaillent qu’avec des photos en niveaux de gris car elles sont plus simples à traiter.
Remarquez la distinction entre la photo originale et aussi celle en niveaux de gris.
La table colorée a effectivement regardé en noir et blanc.
Application d’un détecteur de bords
Appliquez un filtre flou gaussien sur la photo grisée pour supprimer le bruit. Après cela, appelez la fonction sage d’OpenCV pour identifier les bords existants dans la photo.
Les bords sont visibles sur le résultat.
Les côtés avec lesquels vous allez collaborer sont ceux du fichier.
Trouver le plus grand contour
Détectez les formes existantes sur la photo bordée. Les classer par ordre décroissant en ne gardant que les 5 plus grandes formes. Approximer le plus grand contour à quatre côtés en faisant une boucle avec les contours arrangés.
Le contour à quatre côtés est susceptible de contenir le fichier.
Faire une boucle avec les quatre coins du contour du document.
Encerclez les coins du contour du fichier découvert. Cela vous aidera à établir si votre programme avait la capacité de repérer le document dans l’image.
Mettez en œuvre l’encerclement sur l’image RVB redimensionnée.
Ayant repéré le fichier, vous devez maintenant extraire le fichier de l’image.
Utilisation de la perspective Warp pour obtenir l’image souhaitée.
Le point de vue Warp est une méthode de vision par ordinateur pour modifier une photo afin de traiter les distorsions. Elle change une image en un avion différent vous permettant de regarder la photo sous un angle différent.
Pour obtenir une image déformée, vous devez créer un module simple qui effectuera certainement le changement de point de vue.
Module de transformation
Le module achètera les points des bords du fichier. Il va certainement aussi changer l’image d’enregistrement directement en un avion différent et aussi modifier l’angle de la caméra vidéo en une prise de vue au-dessus.
Ouvrez le fichier transform.py que vous avez développé précédemment. Importez les bibliothèques OpenCV et NumPy.
Ce module comprendra 2 fonctionnalités. Développez une fonctionnalité qui va certainement acheter les travaux avec des points d’angle du fichier. La première coordonnée sera celle du bord gauche avant, la deuxième sera celle du coin supérieur droit, la troisième sera certainement celle du coin inférieur approprié, et la 4e coordonnée sera celle du bord inférieur gauche.
Créez une 2ème fonction qui calculera certainement les coins avec de la nouvelle photo ainsi que d’acquérir un plan en surplomb. Elle déterminera certainement après cela la matrice de changement de point de vue ainsi que le retour de l’image déformée.
Vous avez maintenant développé le composant de changement. L’erreur sur l’import perspective_transform va actuellement disparaître.
Remarquez que la photo affichée comporte une prise de vue aérienne.
Application du seuil adaptatif et enregistrement de la sortie numérisée.
Dans les données main.py, appliquez le seuil gaussien à l’image déformée. Cela offrira à l’image déformée un aspect vérifié. Conservez la sortie photo vérifiée dans le dossier comprenant les documents du programme.
L’enregistrement de la numérisation en format PNG permet de conserver la haute qualité du fichier.
Affichage de la sortie
Sortir l’image du papier vérifié :
L’image adhérente révèle le résultat du programme, un plan en surplomb du fichier vérifié.
Comment progresser dans la vision par ordinateur
La création d’un scanner de documents couvre certains endroits centraux de la vision par ordinateur, qui est un domaine vaste et également compliqué. Pour progresser dans la vision par ordinateur, vous devez travailler sur des tâches fascinantes mais difficiles.
Vous devriez également en savoir plus sur la façon dont vous pouvez utiliser la vision par ordinateur avec les technologies existantes. Cela vous maintiendra informé et vous donnera également des originalités pour les projets sur lesquels travailler.
Abonnez-vous à notre e-newsletter
Comment faire un scanner en Python ?
Création d’un scanner de documents en Python
- Scikit-image : pip install scikit-image.
- NumPy : pip install numpy.
- OpenCV- pip install opencv-python.
- Imutils- pip install imutils.
Comment créer un scanner de documents ?
La création d’un scanner de documents se compose principalement de 3 étapes : Étape 1 : démarrer la caméra et capturer l’image. Étape 2 : détecter les bords. Étape 3 : Utiliser les bords de l’image pour trouver le contour (la silhouette) représentant la pièce de papier en cours de numérisation.
Comment numériser un document par lot ?
Suivez les étapes ci-dessous :
- Connectez votre scanner à votre système.
- Placez-y les pages que vous voulez numériser.
- Recherchez Windows Fax and Scan sur votre système et cliquez dessus pour lancer la numérisation.
- Sélectionnez Nouvelle numérisation.
- Allez dans le menu déroulant Profil et sélectionnez photo ou document.
- Dans la source, sélectionnez votre type de scanner.
- Cliquez sur scanner.
Comment créer un scan PDF ?
Numériser des documents au format PDF sur un appareil Android.
- Installez et ouvrez l’application Drive.
- Appuyez sur Nouvelle numérisation .
- Lorsque vous avez terminé la numérisation, appuyez sur OK.
- (Facultatif) Pour numériser plusieurs pages, appuyez sur Ajouter en bloc. OK.
- Tapez sur Enregistrer.
- Saisissez un nom pour le fichier, choisissez un compte Drive pour enregistrer le fichier et un dossier Drive, puis appuyez sur Enregistrer.