Friday, December 27, 2024
Google search engine
HomeLanguagesHow to Recognize Optical Characters in Images in Python?

How to Recognize Optical Characters in Images in Python?

Prerequisite: Pytesseract, OpenCV

In this article, we are going to recognize the character from the images and get text data out of an image. Let’s take a quick introduction to the required module.

  • OpenCV: It is a Python module in which we can do image processing, video capture, and some analysis tools like face detection or object detection. It has C++, Python, Java, and MATLAB interfaces and supports Windows, Linux, Android, and Mac OS.
  • Pytesseract: Python-tesseract is an optical character recognition (OCR) tool for Python. That is, it will recognize and “read” the text embedded in images. Python-tesseract is a wrapper for Google’s Tesseract-OCR Engine. It is also useful as a stand-alone invocation script to tesseract, as it can read all image types supported by the Pillow and Leptonica imaging libraries, including jpeg, png, gif, BMP, tiff, and others. Additionally, if used as a script, Python-tesseract will print the recognized text instead of writing it to a file.

Approach:

  • Import required module
  • Setting the path of pytesseract.
  • Read the image with cv2.imread()
  • Convert image in RGB format.
  • Extract text from image using pytesseract.image_to_string(img).

We are going to use this image for a demonstration:

Below is the full implementation: 

Python3




# importing the libraries
import cv2
import pytesseract
  
# setting the path of pytesseract exe
# you have to write the location of
# on which your tesseract was installed
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
  
# Now we will read the image in our program
# you have to put your image path in place of photo.jpg
img = cv2.imread('photo.jpg')
  
# Our image will read as BGR format,
# So we will convert in RGB format because 
# tesseract can only read in RGB format
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  
# For getting the text and number from image
print(pytesseract.image_to_string(img))
  
# For displaying the original image
cv2.imshow("result", img)
cv2.waitKey(0)


Output:

Lazyroar
RELATED ARTICLES

Most Popular

Recent Comments