2017-08-21 6 views
-1

how can extract numbers exactly from the below image using pytesseract(image_to_string(image,config='-psm 6')).May Anyone Help me.comment extraire les chiffres exacts de l'image ci-dessous à l'aide pytesseract image_to_string

import cv2 
import numpy as np 
from matplotlib import pyplot as plt 
from PIL import Image 
from noiselevel import estimate_noise 
import pytesseract 
img = cv2.imread('cmam.png',0) 
# gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
# a=estimate_noise(img) 
# global thresholding 

ret1,th1 = cv2.threshold(img,127,254,cv2.THRESH_BINARY) 
cv2.imshow("global",th1) 
cv2.imwrite("final.tif",th1) 
img=cv2.imread("final.tif",0) 
x=Image.open("final.tif") 
print pytesseract.image_to_string(x,config='-psm 6') 
# Otsu's thresholding 
ret2,th2 = cv2.threshold(img,43,254,cv2.THRESH_BINARY+cv2.THRESH_OTSU) 
cv2.imshow("Otsu",th2) 
cv2.imwrite("final1.tif",th2) 
x=Image.open("final1.tif") 
print pytesseract.image_to_string(x,config='-psm 6') 
# Otsu's thresholding after Gaussian filtering 
blur = cv2.GaussianBlur(img,(5,5),0) 
ret3,th3 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) 
cv2.imshow("filterOtsu",th3) 
cv2.imwrite("final2.tif",th3) 
x=Image.open("final2.tif") 
print pytesseract.image_to_string(x,config='-psm 6') 

mon. « Al © 1910 18500 é§551 6253

+0

Pouvez-vous fournir plus de détails? Parce que des applications comme celle-ci ont besoin de toutes les informations qu'elle peut utiliser. Est-ce un échantillon aléatoire ou vous le faites uniquement pour les cartes de débit/crédit? Si c'est le cas, vous pouvez utiliser un peu de prétraitement pour localiser la position dans une image d'où vous voulez obtenir les nombres. Vous pouvez également modifier les commandes dans tesseract pour ne considérer que les nombres qui augmenteront votre précision. – Mayank

+0

oui.Je dois extraire uniquement les numéros de carte de crédit à partir d'images de cartes de crédit.je suis en utilisant le code ci-dessus. – chandiran

+0

puis-je savoir quelles sont les commandes.qui m'aidera à extraire les nombres exacts – chandiran

Répondre

0

Il y a plusieurs étapes qui doivent être suivies pour augmenter la précision.

  • technique pré-traitement d'utilisation à crop the desired part of the image, qui permettra d'éliminer l'erreur et d'améliorer la précision.
  • Configurez le Tesseract pour détecter des chiffres.
  • train moteur, car le type de police est fixe, vous pouvez utiliser les images pour former votre moteur et augmenter la précision.

Espérons que cela résout votre problème.

+0

désolé..je ne sais pas comment former moteur.et quelle est la commande tesseract pour détecter uniquement les numéros.je suis nouveau à tesseract..sorry je pose quelque chose de mal – chandiran

+0

Y at-il un classificateur en cascade pour détecter uniquement les chiffres de l'image . s'il vous plaît dites-moi si c'est le cas. – chandiran

+0

Je n'ai pas utilisé Tesseract avec python, mais je crois que les commandes et fonctionnalités de base resteront les mêmes. Vous pouvez passer en revue le manuel fourni pour le bureau tesseract et relier le même en python. S'il vous plaît passer par h: - https://github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage – Mayank