Автор оригинала: 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 обертка и несколько шагов предварительной обработки, которые могут быть полезны, чтобы получить лучшие результаты.
Счастливое обучение!