Автор оригинала: Akhand Pratap Mishra.
Оптическое распознавание символов-это распознавание набранного, рукописного или печатного текста и преобразование их в текст. OCR может быть использован для автоматизации различных задач с участием человека, например, в банковском деле OCR используется для обработки чеков без участия человека, генерации содержимого документов из их отсканированных изображений, он также может быть полезен для слабовидящих людей и т. Д. Для этого OCR мы будем использовать Microsoft Computer Vision API . Мы сделаем post-запрос для выполнения вызова API в python. и в ответ мы получим вывод в формате JSON. Для начала работы вам необходимо иметь учетную запись Microsoft, а после этого вы можете получить бесплатную подписку на computer vision API на 30 дней. Вы должны приобрести свой секретный ключ подписки, который выглядит примерно так 98f714r6vb2e193018b28fg1u9b3b0d7e7
#Defining base url for API call. base_url = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/" ocr_url = base_url + "ocr" #Defining subscription key and headers for subscription key. sub = "98f714r6vb2e193018b28fg1u9b3b0d7e7" headers = {'Ocp-Apim-Subscription-Key': sub}
Microsoft OCR API довольно гибок, и мы можем определить множество параметров в зависимости от наших вариантов использования, здесь мы определяем два параметра: язык, который в нашем случае является английским (определяется “unk”), и то, следует ли определять ориентацию текста или нет, что в нашем случае определяется как true. Нам также нужен URL-адрес изображения, на котором мы хотим запустить наше распознавание (мы также можем загрузить локальное изображение для распознавания), поэтому мы определим URL-адрес изображения.
#Defining parameters and orientation params = {'language': 'unk', 'detectOrientation ': 'true'} #Defining image url img = "https://quotefancy.com/download/18846/original/wallpaper.jpg" data = {'url': img}
Ниже приведено изображение по ссылке выше
Теперь мы импортируем requests для создания post-запроса с упоминанием ocr_url, заголовков, параметров и json.
import requests response = requests.post(ocr_url, headers=headers, params=params, json=data) response.raise_for_status() analysis = response.json() print analysis
Выходные данные JSON приведенного выше скрипта содержат данные о координатах ограничивающего прямоугольника, ориентации и угле текста для каждого слова строка за строкой. Вот результат
{ 'language':'en', 'orientation':'Up', 'textAngle':0.0, 'regions':[ { 'boundingBox':'689,768,2462,1049', 'lines':[ { 'boundingBox':'689,768,2462,180', 'words':[ { 'boundingBox':'689,768,541,158', 'text':'Work' }, { 'boundingBox':'1293,768,450,158', 'text':'hard' }, { 'boundingBox':'1816,768,158,156', 'text':'in' }, { 'boundingBox':'2041,768,771,180', 'text':'silence,' }, { 'boundingBox':'2889,768,262,158', 'text':'Let' } ] }, { 'boundingBox':'689,1037,2454,181', 'words':[ { 'boundingBox':'689,1075,399,143', 'text':'your' }, { 'boundingBox':'1135,1074,722,103', 'text':'success' }, { 'boundingBox':'1918,1037,217,140', 'text':'be' }, { 'boundingBox':'2184,1075,399,143', 'text':'your' }, { 'boundingBox':'2638,1037,505,140', 'text':'noise.' } ] }, { 'boundingBox':'1717,1358,408,52', 'words':[ { 'boundingBox':'1717,1359,173,51', 'text':'Frank' }, { 'boundingBox':'1913,1358,212,52', 'text':'Ocean' } ] }, { 'boundingBox':'1782,1765,276,52', 'words':[ { 'boundingBox':'1782,1765,276,52', 'text':'@quoteßancu' } ] } ] } ] }
Наслаждайтесь!
P. S: На всякий случай, если вам понадобятся какие-либо разъяснения, оставьте комментарий.