2017-09-17 1 views
3

Je travaille sur l'extraction de texte en images.Extraction de texte à partir d'images

Dans un premier temps les images sont colorées avec du texte placé en blanc, sur plus de traiter les images, le texte est affiché en pixels noirs et d'autres sont blancs (avec un peu de bruit), voici un échantillon:

Maintenant, quand j'essaie l'OCR en utilisant pytesseract (tesseract), je n'ai toujours pas de texte.

Est-il possible d'extraire du texte à partir d'images colorées?

+0

Convertissez la couleur en niveaux de gris et définissez un seuil binaire pour que tout soit noir ou blanc. Vous pouvez essayer un despeckle ou autre pour supprimer le bruit, mais si 'tesseract' de la ligne de commande ne peut pas le ramasser alors je recommanderais' ocropy' de Google. –

+0

Avez-vous essayé d'obtenir de l'aide sur le blog de [Adrian Rosebrock] (http://www.pyimagesearch.com/2017/07/10/using-tesseract-ocr-python/)? –

+0

En principe, cela devrait être possible: Votre image fonctionne très bien avec Google OCR et à moitié ok avec ocr.space. J'ai testé avec https://ocr.space/compare-ocr-software –

Répondre

2
from PIL import Image 
import pytesseract 
import argparse 
import cv2 

# construct the argument parser and parse the arguments 
ap = argparse.ArgumentParser() 
ap.add_argument("-i", "--image", required=True, help="Path to the image") 
args = vars(ap.parse_args()) 

# load the image and convert it to grayscale 
image = cv2.imread(args["image"]) 
cv2.imshow("Original", image) 

# Apply an "average" blur to the image 

blurred = cv2.blur(image, (3,3)) 
cv2.imshow("Blurred_image", blurred) 
img = Image.fromarray(blurred) 
text = pytesseract.image_to_string(img, lang='eng') 
print (text) 
cv2.waitKey(0) 

En tant que résultat je reçois = « séjour: dans un Overwoter Bungalow 3 $» »

Qu'en est-il en utilisant Contour et prendre des blobs inutiles de celui-ci? peut fonctionner

+0

Merci, je vais essayer, affichera les résultats. –