Extracting text out of images

Yash Arora picture Yash Arora · Sep 17, 2017 · Viewed 8.9k times · Source

I am working on extracting text out of images.

Initially images are colored with text placed in white, On further processing the images, the text is shown in black and other pixels are white (with some noise), here is a sample:

Now when I try OCR using pytesseract (tesseract) on it, I still am not getting any text.

Is any solution possible to extract text from colored images?

Answer

Deepan Raj picture Deepan Raj · Sep 20, 2017
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)

As as result i get = "Stay: in an Overwoter Bungalow $3»"

What about using Contour and taking unnecessary blobs from it ? might work