Рубрики
Без рубрики

Оптическое распознавание символов (OCR) в Python

В этой статье мы узнаем, как выполнить распознавание оптического персонажа с использованием Pytesseract или Python-Tesseract. Pytesseract – обертка для Tesseract-OCR

Автор оригинала: Pankaj Kumar.

Оптическое распознавание символов (OCR) в Python

В этой статье мы узнаем, как выполнить оптическое распознавание символов, используя Pytesseract или питон-тессеракт. Pytesseract – обертка для Tesseract – двигатель. Tesseract – это операционный двигатель OCR с открытым исходным кодом, управляемый Google.

Есть времена, когда у нас есть тексты на наших изображениях, и нам нужно ввести его на нашем компьютере.

Для нас очень легко воспринимать то, что написано на изображении, но для компьютера, чтобы понять тексты внутри изображения, является действительно сложной задачей.

Компьютер просто воспринимает изображение в качестве массива пикселей.

OCR пригодится с этой задачей. OCR обнаруживает контент текста на изображениях и переводит информацию для закодирования текста, которую компьютер может легко понять.

В этой статье мы увидим, как выполнить задачу OCR с Python.

Реализация базового распознавания оптического характера в Python

Установите обертку Python для Tesseract, используя PIP.

$ pip Установить Pytesseract

Вы можете обратиться к это Запрос на переполнении стека, чтобы получить подробную информацию о установке двоичного файла Tesseract и Pytesseract Work.

1. Получить изображение с четко видимым текстом

Давайте теперь посмотрим на одно образец изображения и извлекайте текст от него.

Образец

2. Код для извлечения текста из изображения

Изображение выше в формате JPEG, и мы попытаемся извлечь текстовую информацию от нее.

#Importing libraries
import cv2
import pytesseract

#Loading image using OpenCV
img = cv2.imread('sample.jpg')

#Converting to text
text = pytesseract.image_to_string(img)

print(text)

Выход:

On the Insert tab, the galleries include items that are designed
to coordinate with the overall look of your document. You can
use these galleries to insert tables, headers, footers, lists, cover pages, and other document building blocks. When you create
pictures, charts, or diagrams, they also coordinate with your
current document look.

После загрузки изображения с помощью OpenCV мы использовали метод Pytesseract Image_to_String, который нуждается в изображении в качестве аргумента ввода. Эта единая строка кода преобразует текстовую информацию на изображениях в кодировку текстов.

Тем не менее, реальные задачи для OCR будут сложными, если мы не будем предварительно назначать изображения, поскольку эффективность преобразования напрямую зависит от качества входного изображения.

Реализация OCR после предварительной обработки с использованием OpenCV

Шаги Мы будем использовать для предварительной обработки нашего изображения:

  • Преобразовать изображение в серого цвета – Изображения должны быть преобразованы в двоичное изображение, поэтому сначала мы преобразуем цветное изображение в серого цвета.
  • Порог используется для преобразования изображений в оттенках серого в двоичные изображения. Он решает, стоит ли значение пикселя ниже или выше определенного порога. Все приведенные ниже пиксели обратываются в белый пиксель, все пиксели выше обращены к черному пикселю.
  • Теперь переверните изображение Использовать Битона_но операция.
  • Применение различного шумоподавления техники, такие как эродирование, расширение и т. Д.
  • Применение метода экстракции текста на предварительно обработанное изображение.

1. Найдите изображение с четким текстом

Давайте реализуем выше шаги в коде, используя изображение ниже:

Образец для проверки распознавания оптического символа

2. Заключите код для предварительной обработки и извлечения текста из изображений с помощью Python

Теперь мы будем следовать шагам для предварительной обработки файла и извлечь текст с изображение выше. Оптическое распознавание символов работает лучше всего, когда изображение будет читаемо и очистить для алгоритма машинного обучения, чтобы взять сигналы.

#Importing libraries
import cv2
import pytesseract
import numpy as np

#Loading image using OpenCV
img = cv2.imread('sample_test.jpg')

#Preprocessing image
#Converting to grayscale
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#creating Binary image by selecting proper threshold
binary_image = cv2.threshold(gray_image ,130,255,cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

#Inverting the image
inverted_bin = cv2.bitwise_not(binary_image)

#Some noise reduction
kernel = np.ones((2,2),np.uint8)
processed_img = cv2.erode(inverted_bin, kernel, iterations = 1)
processed_img = cv2.dilate(processed_img, kernel, iterations = 1)

#Applying image_to_string method
text = pytesseract.image_to_string(processed_img)

print(text)

Выход:

On the Insert tab, the galleries include items that are designed
to coordinate with the overall look of your document. You can
use these galleries to insert tables, headers, footers, lists, cover
pages, and other document building blocks. When you create
pictures, charts, or diagrams, they also coordinate with your
current document look,

You can easily change the formatting of selected text in the
documenttext by choosing a look for the selected text from the
Quick Styies gallery on the Home tab. You can also format text
directly by using the other controls on the Home tab. Most
controls offer a choice of using the look from the current theme

or using a tormat that you specify directly.

To change the overall look of your document, choose new
Theme elements on the Page Layout tab. To change the looks
available in the Quick Style gallery, use the Change Current
Quick Style Set command. Both the Themes gallery and the
Quick Styles gallery provide reset commands so that you can

Вы можете узнать больше о OpenCV и его функциях для трансформаций изображений здесь Отказ

Заключение

Эта статья была о внедрении распознавания оптического персонажа в Python, используя Pytesseract обертка и несколько шагов предварительной обработки, которые могут быть полезны, чтобы получить лучшие результаты.

Счастливое обучение!