Какой самый быстрый способ распознать цифры на картинке?
Есть зеленые цифры на белом фоне:
Цифры не меняют угол наклона, не меняют цвет и т.п.
Очень важна скорость распознавания. Возможно подскажите библиотеки, или вообще код на чистом питоне.
-
Вопрос заданболее трёх лет назад
-
5471 просмотр
Пригласить эксперта
Если шрифт не меняет наклона, цвет и сам шрифт, то можно просто нарезать картинку на n-частей и вычислить хэш каждой части и сравнить со своей библиотекой. Прямо на картинке видно, что мало того что шрифт простой, так еще и цифры имеют одинаковую ширину. Вот и резать картинку на равные части, ширина которых равна ширине одной цифры.
import os
os.chdir('D:/python27/lib/site-packages/pytesser')
try:
import Image
except ImportError:
from PIL import Image
from pytesser import *
im = Image.open('q.gif')
im = im.convert('L')
text = image_to_string(im)
print text
Смотри модули PIL, Pytesser
самый быстрый конечно не делать распознавание символов, а искать совпадение паттерна из нескольких пикселов цифры. тем более что цифры всегда на одной позиции.
думаю будет достаточно сравнения 8-16 характерных точек у каждой цифры.
СМС рассылка? 🙂
Я автокликер под эту каптчу писал недели две назад. Если нужно обращайтесь скайп sereggam
-
Показать ещё
Загружается…
15 мая 2023, в 16:55
1000 руб./за проект
15 мая 2023, в 16:46
3000 руб./за проект
15 мая 2023, в 16:36
40000 руб./за проект
Минуточку внимания
Способ 1: Mathway
В большинстве случаев калькуляторы по фото реализованы в виде мобильных приложений. Нам удалось найти всего один онлайн-сервис, который напрямую поддерживает загрузку снимков и осуществляет различные вычисления после сканирования примера. Называется этот сайт Mathway, и как раз о нем пойдет речь в следующей инструкции.
Перейти к онлайн-сервису Mathway
- Откройте главную страницу сайта, воспользовавшись ссылкой выше. Сначала разверните меню с доступными разделами, чтобы выбрать тот, который идеально подойдет для имеющихся на фотографии примеров.
- Mathway поддерживает элементарную математику, продвинутую алгебру, тригонометрию и даже математический анализ. Ознакомьтесь с полным списком и выберите нужный вам вариант.
- Затем в поле ввода примера нажмите кнопку с изображением фотоаппарата, которая перенаправляет к выбору имеющегося кадра.
- Отыщите фотографию в «Проводнике» и дважды кликните по ней левой кнопкой мыши.
- После открытия на экране вы увидите область, при помощи которой нужно выделить ту часть изображения, где находится ваш пример. Обратите внимание на то, что Mathway умеет одновременно решать только один пример, поэтому выделите только требуемую часть.
- Нажмите по значку со стрелкой, чтобы подтвердить загрузку примера на сервер.
- Далее убедитесь в том, что он корректно отображается в форме ввода.
- Если что, пример всегда можно редактировать при помощи панели с кнопками. На ней присутствуют не только цифры, но и все основные математические формы, соответствующие выбранному разделу математики.
- Нажмите по значку со стрелкой для отправки текущей задачи на сервер.
- На экране появится форма с вопросом о том, в каком виде вам нужно представить ответ. Список вариантов будет разным в зависимости от выбранного раздела математики.
- Через секунду после выбора подходящего варианта вы получите соответствующий ответ на ваш пример и сможете перейти к следующим решениям, взаимодействуя с онлайн-сервисом точно так же, как это было показано выше.
Способ 2: IMG2TXT + Calc
Как вы уже знаете, нам не удалось найти больше онлайн-сервисов, которые поддерживают считывание примеров с фотографии с дальнейшим их решением. Как альтернативу, если вам не подходит предыдущий вариант, мы предлагаем совместить онлайн-сервис для распознавания текста и стандартный онлайн-калькулятор, чтобы решить полученный пример. Начнем именно с распознавания цифр и математических знаков на изображении.
Перейти к онлайн-сервису IMG2TXT
- Откройте главную страницу сайта IMG2TXT, который предназначен для расшифровки текста на изображении. Нажмите по области для выбора файла.
- В «Проводнике» отыщите фотографию с математическим примером и дважды кликните по ней левой кнопкой мыши.
- Если на фотографии присутствуют латинские символы неизвестных, лучше выбрать язык распознавания «English». Если только цифры, то можно остановиться и на «Русский».
- Запустите процесс распознавания, щелкнув по «Загрузить».
- Задача будет автоматически добавлена в очередь. Не закрывайте текущую вкладку, иначе весь прогресс будет сброшен.
- Спустя несколько секунд страница перезагрузится и вы должны увидеть, что IMG2TXT корректно справился с распознаванием цифр и математических знаков.
- Остается только выделить пример, щелкнуть по нему правой кнопкой мыши и из контекстного меню выбрать пункт «Копировать».
Теперь понадобится обратиться к любому онлайн-калькулятору, который поддерживает вставку примеров из буфера обмена. Мы выбрали сайт с названием Calc, однако если вам известны другие веб-сервисы, которыми вы уже пользовались, можете обратиться к ним.
Перейти к онлайн-сервису Calc
- Перейдите к сайту Calc или откройте другой выбранный веб-сервис, после чего вставьте скопированный заранее пример в область для вычислений.
- Если нужно, используйте кнопки редактирования, чтобы поменять некоторые знаки или добавить недостающие. Это может пригодиться, например, когда сайт не поддерживает знак деления «:», а использует для этого «/».
- Нажмите кнопку «=», чтобы подтвердить ввод и получить решение вашего примера.
- Ознакомьтесь с ним, запишите или переходите к другим решениям, если на фото было несколько задач, которые нужно последовательно решить.
Поделиться статьей в социальных сетях:
Я делаю скришнот с помощью библиотеки PIL участка экрана:
Мне нужно определить баланс по скриншоту. Я планировал это делается с помощью библиотеки OpenCV(cv2)
И надо как-то скормить шаблоны по типу этих и двигаться от этого:
(Решение исключительно из моих предположений)
Если есть более простые решения, то можно их(желательно без ООП и браузер скриптинг не подходит)
задан 12 мая 2020 в 20:11
Можно воспользоваться модулем pytesseract
— обёрткой над Google’s Tesseract-OCR Engine.
Пример:
import cv2
import pytesseract
img = cv2.imread('screen.png')
img = cv2.resize(img, None, fx=9, fy=9) # Увеличение изображения в 9 раз
# Распознавание, допустимы только цифры
balance = pytesseract.image_to_string(img, config='outputbase digits')
print(balance)
stdout:
9897
screen.png:
ответ дан 12 мая 2020 в 21:27
nomnoms12nomnoms12
18.3k5 золотых знаков22 серебряных знака47 бронзовых знаков
2
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
1 |
|
Поиск цифр на изображении и их выделение12.02.2017, 15:17. Показов 9073. Ответов 16
Всем привет! Возникла потребность в написании простенькой программы по поиску чисел на изображении. Однако, уровень моих знаний в программировании не слишком хорошем уровне и поэтому реализовать автоматизированный поиск чисел у меня не получается. Получилось только, если я сам задам координаты и размер прямоугольника, выделить эти числа и копировать его в новый pictureBox. Но хотелось бы чтобы программа делала это сама. Может кто сталкивался с этим и сможет помочь? Заранее спасибо за помощь) Миниатюры
0 |
910 / 814 / 332 Регистрация: 03.02.2015 Сообщений: 5,247 Записей в блоге: 9 |
|
13.02.2017, 02:40 |
2 |
в написании простенькой программы по поиску чисел на изображении Простенькое – не получится), если только готовые библиотеки использовать.
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
13.02.2017, 22:18 [ТС] |
3 |
Sanya_sa, это конечно печально, но у меня нет другого выхода) Вы могли бы подсказать какие библиотеки лучше рассмотреть (желательно с примерами) или помочь в начинании?)
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
13.02.2017, 23:36 [ТС] |
5 |
Storm23, спасибо) Я тоже рассматривал данную библиотеку, даже написал простенькую программу распознавания чисел по примерам. Меня больше интересует поиск самих чисел на изображении, их выделение и вывод.
0 |
10377 / 5108 / 1824 Регистрация: 11.01.2015 Сообщений: 6,226 Записей в блоге: 34 |
|
14.02.2017, 12:28 |
6 |
Меня больше интересует поиск самих чисел на изображении, их выделение и вывод. Текст обладает повышеной локальной контрастностью. По этому признаку его можно найти. Cмотрите пример здесь: Поиск текста в изображении
3 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
14.02.2017, 22:04 [ТС] |
7 |
Storm23, спасибо вам, интересный механизм поиска, буду пробовать)
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
16.02.2017, 17:51 [ТС] |
8 |
Storm23, Очень интересный метод, однако, если на картинке много разного текста найти и выделить нужный с данным алгоритмом нереально (ну или я не могу). Возможно ли выделить только нужный текст (точнее цифры)? Видел в интернете примеры выделения используя библиотеку OpenCVSharp, но нигде нет исходников(
0 |
10377 / 5108 / 1824 Регистрация: 11.01.2015 Сообщений: 6,226 Записей в блоге: 34 |
|
16.02.2017, 18:02 |
9 |
Возможно ли выделить только нужный текст (точнее цифры)? Что значит “нужный” текст? Чем нужный отличается от ненужного?
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
16.02.2017, 19:04 [ТС] |
10 |
Storm23, просто на изображении имеется различный текст и цифры, и из всего этого многообразия необходимо выделить только самую длинную друг за другом идущую последовательность цифр, а остальные не выделять.
0 |
10377 / 5108 / 1824 Регистрация: 11.01.2015 Сообщений: 6,226 Записей в блоге: 34 |
|
19.02.2017, 20:54 |
12 |
Возможно ли реализовать такую же программу на C#? Конечно возможно.
1 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
19.02.2017, 22:18 [ТС] |
13 |
Storm23, спасибо, попытаюсь разобраться в вашем примере. Добавлено через 1 час 0 минут
0 |
10377 / 5108 / 1824 Регистрация: 11.01.2015 Сообщений: 6,226 Записей в блоге: 34 |
|
20.02.2017, 01:05 |
14 |
у вас случайно не остался собранный проект вашего примера? CameraCalibration.zip
1 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
20.02.2017, 19:51 [ТС] |
15 |
Storm23, спасибо за пример, посмотрев его заметил, что вы используете библиотеку emgu cv. Как вы подметили ранее, что действительно с данной библиотекой возможно реализовать ту программу. Однако, я совсем не знаком с данной библиотекой, не могли бы вы помочь реализовать фрагмент где выделяется штрих код с номером и выносится в новый pictureBox? Если вам не сложно)
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
04.03.2017, 21:38 [ТС] |
16 |
Не подскажите может есть другой и более простой способ выделить штрих код, кроме метода с использованием emgu cv? Т.к. в нем не получается разобраться(
0 |
2 / 2 / 0 Регистрация: 05.12.2013 Сообщений: 316 |
|
13.03.2017, 18:12 [ТС] |
17 |
Тема до сих пор актуальна. Заранее спасибо всем кто откликнется!
0 |
Как некоторые утверждают, на картинке можно найти все цифры от 0 до 9. Но я увидел только семь неискаженных, правильно нарисованных цифр — это 6 (шестерка), 8 (восьмёрка), 4 (четвёрка), 1 (единица), 3 (тройка), 9 (девятка) и 2 (двойка). На следующем рисунке я отметил красным цветом найденные цифры: Если дать послабление и допустить некоторые условности, то с большой натяжкой можно сказать, что там присутствуют и три, недостающих до полного комплекта, цифры (0, 7 и 5). За ноль (0) можно принять верхнюю или нижнюю окружность восьмёрки, но ноль обычно вытянут по вертикали, а здесь практически идеальная окружность. Семёрку (7) можно найти на изображении четвёрки, если повернуть рисунок на 180 градусов. За пятёрку (5) можно принять часть восьмёрки, но эта пятёрка получается со скругленными углами, и больше похожа на латинскую букву «S». автор вопроса выбрал этот ответ лучшим Борисычъ 2 года назад В головоломке рубрики “досуг и развлечения” можно допустить некоторые вольности, или как выразил “ЧипИДейл” – послабления, ведь это не математическая задача. Пусть ноль будет ноликом похожим на букву “о” и некоторые другие цифры не печатными, а как-бы написанные от руки, такой мол почерк. Зато в результате мы увидим все десять цифр! Эл Лепсоид 4 года назад Если рассматривать только допустимые варианты написания цифр и не притягивать за уши те, что выходят за эти рамки (например “S” считать “5”), то из 10 доступных арабских цифр я на рисунке не нашел только 5 и 7 – все остальные присутствуют (хотя “0” – тоже с оговоркой: он обычно тоже слегка вытянут, а здесь за него можно принять “колесо”). Итак, сверху-вниз: сначала 6; потом 8 (верхняя часть пересекается с нижней частью 6) и тут же по контуру 3; далее 9 – нижняя окружность 8 дает верхушку 9; 2 вписана в 9 и ее нижняя “полочка” расположена горизонтально; 4 – “ножка” от 9 и вся нижняя часть конструкции; ну и 1, как “ножка” 4. Выписываем: 6, 8, 3, 9, 2, 4, 1 – семь цифр явно. Про 0 я уже написал. Бархатные лапки 2 года назад Интересная головоломка. Лично мне сразу в глаза бросились такие цифры, как: четыре, шесть, восемь, один и тройка. Далее я внимательнее присмотрелась и увидела также девятку, она перетекает из нижней части восьмерки. Также я рассмотрела двоечку. А вот ноль я не увидела, итого на мой взгляд здесь 7 циферок. На рисунке я вижу цифы 0,1,2,3,4,5,6,7,8,9. Мне нравятся такие задания .Интересны также изображения картин в картине. Недавно узнала , что есть у очень знаменитых брендов логотипы с “сюрпризом”.Даже в старину уже придумывали закодированные послания. Maria19891 4 года назад Цифры, которые я вижу, если рассматривать картинку сверху вниз: 6; 8; 3; 0; 2; 9; 4; 1. Хоть убейте, но цифру 5 я не нашла. Цифру 7 можно притянуть за уши, если посмотреть на перевернутый рисунок – на месте перекладины 4 и находится эта цифра. Колючка 555 4 года назад Итак мне видны следующие цифры- один, два, три, четыре, шесть, восемь. Никак не могу согласиться что здесь есть ноль, пять, семь и девять. Если только условно закрывать глаза и принимать кружочек за ноль, неправильно написанную девятку. Интересное задание. Нашла 6,8,0,9,2,4,1, может быть чисел и больше, но я увидела столько, незнаю может быть картинку надо было повернуть вверх ногами, и можно еще числа увидеть, но в условии этого сказано не было. Дионисия 4 года назад 8 6 0 9 1 3 Ну как-то так. Я нашла только столько. Может быть их больше или даже меньше. Т.к. если перевернуть 6, то получиться 9. Насчет 2 очень спорно.Если посмотреть на 4. 7 как вроде не наблюдается. Наталья Исмагилова 4 года назад 6, 8, 9, 4, 1, 2, 0, 3. Как то так, лично я больше ни чего не вижу, может кто то глазастее). Знаете ответ? |
Смотрите также: Будут ли совпадать ФИО на кредитной и именной карте с фото в ПриватБанк? Что значат цифры на карте Вайлдберриз, когда выбираешь ПВЗ? Открытки, картинки, обои, фото собак, кошек на Хэллоуин где найти? Головоломка Дьюдени – задача о пауке и мухе (1903 г.). Как решить? Кью Ар код это цифры или картинка? И как надо(см)? Какой цифрой на карте обозначена Билибинская атомная электростанция (см.)? Как продолжить шуточную последовательность чисел: 4, 3, 3, 6, 4, 5 …? Вы можете разгадать головоломку с шахматами? Как решить загадку-головоломку: Ханойская башня? Как быстро вы сможете поймать кота (подробности)? |