Какой самый быстрый способ распознать цифры на картинке?
Есть зеленые цифры на белом фоне:
Цифры не меняют угол наклона, не меняют цвет и т.п.
Очень важна скорость распознавания. Возможно подскажите библиотеки, или вообще код на чистом питоне.
-
Вопрос заданболее трёх лет назад
-
5475 просмотров
Пригласить эксперта
Если шрифт не меняет наклона, цвет и сам шрифт, то можно просто нарезать картинку на 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
-
Показать ещё
Загружается…
23 мая 2023, в 23:46
4000 руб./за проект
23 мая 2023, в 23:15
200 руб./за проект
23 мая 2023, в 22:54
15000 руб./за проект
Минуточку внимания
Метаданные фото – это информация, полезная в обычном случае, но опасная для тех, кто хочет обеспечить себе максимальную анонимность. Так называемые EXIF данные имеются у каждой фотографии, вне зависимости от того, с какого устройства она была сделана. И они могут рассказать не только о параметрах фотоаппарата/смартфона, с которого была сделана фотография, но и многое другое. Дату создания, геолокацию, информацию о собственнике кадра и не только может узнать любой, потратив на это всего несколько минут.
Сегодня мы объясним вам, как посмотреть EXIF данные фотографии и как удалить их в том случае, если вы хотите обеспечить себе приватность.
Как найти информацию по фотографии
Существует множество способов считать информацию по фотографии, вне зависимости от того, кто её владелец и где вы её нашли. Среди этих способов наибольшей популярностью пользуются варианты с браузером, онлайн сервисами и средствами Windows. Мы детально расскажем о каждом из них.
При помощи браузера
Поиск информации по фотографии при помощи браузера, пожалуй, самый простой и доступный способ. Чтобы узнать нужные данные по фото, вы можете использовать:
- Google Chrome. Требуется установить расширения для браузера Exponator или Exif Viewer. Оба позволяют отобразить скрытую информацию фото и содержат список настроек для получения только необходимой информации.
- Internet Explorer. Для этого браузера нужно скачать дополнение IExif, совместимое со всеми последними 32 и 64-битными версиями. После установки расширения достаточно лишь навести курсор на любое отображаемое фото, чтобы получить интересующую вас информацию.
- Mozilla Firefox. Браузер поддерживает удобные расширения Exif Viewer или FxIF для распознавания метаданных фото.
Узнаём EXIF в онлайн-сервисе
Мы предлагаем ознакомиться с сервисом, который позволяет быстро узнать EXIF фото, не требуя установки дополнительных расширений. Достаточно лишь загрузить фотографию на сервис или указать прямую ссылку на неё, а всё остальное он сделает сам.
- fotoforensics.com. Обширный набор функций позволит вам не только узнать данные о фотографии, но и точно определить подлинность снимка. Сервис успешно вычисляет фотошоп и коллажи, оповещая об этом пользователя.
Используем средства Windows для определения метаданных фото
Простейший способ для тех, кто не хочет искать продвинутые способы в интернете. Если у вас нет под рукой других инструментов, то просто кликните правой кнопкой мыши по фотографии, выберите «Properties» (свойства) и найдите в открывшемся окне вкладку «Details» (детали). В этой вкладке вы узнаете параметры фотографии, её геолокацию, дату и другие данные.
Как редактировать или удалить скрытые данные EXIF?
Если вы не хотите, чтобы о ваших фото, загруженных в сеть, третье лицо могло получить какую-либо информацию – измените или полностью удалите её. Оба способа требуют минимальных затрат времени, взамен гарантируя максимальную безопасность и анонимность вашего фото в сети.
Удаляем все или некоторые данные фото
Самый простой способ удалить скрытые данные в фотографии – использовать системные инструменты Windows. Давайте пошагово рассмотрим как это сделать:
Откройте свойства фотографии, перейдите во вкладку «подробнее» и вы увидите внизу пункт «удаление свойств и личной информации».
Клик по нему отправит вас на вкладку, где вы сможете самостоятельно выбрать данные, которые нужно удалить.
Если вы не хотите потерять эти данные, можно создать копию фотографии с удаленными EXIF-данными, сохранив при этом оригинал. Для этого нужно выбрать пункт «создать копию, удалив все возможные свойства». Пункт «удалить все свойства для этого файла» безвозвратно удалит все EXIF-данные у оригинала.
Самостоятельно изменяем EXIF фотографии
Наименее требовательный к профессиональным навыкам способ – использовать онлайн сервисы. Хорошим примером такого сервиса является IMGonline, который позволяет быстро выбрать нужные данные и заменить их необходимыми вам параметрами.
Подводим итоги
Скрытые данные фото – это удобный способ узнать информацию не только для вас, но и для злоумышленников. Сегодня мы рассказали, что представляют из себя эти скрытые данные, как по ним обнаружить геолокацию, дату и другие параметры фото, и как можно обезопасить себя от подобных действий со стороны третьих лиц.
Все приведённые нами способы максимально просты и не требуют дополнительных знаний. Это значит, что вы, дорогие читатели, сможете воспользоваться ими без какого-либо опыта и многостраничных инструкций. В большинстве приведённых способов достаточно несколько раз кликнуть мышкой или скачать расширение для того, чтобы получить исчерпывающие данные.
Рассказывайте своим друзьям, делитесь ссылкой на статью в соц.сетях и мессенджерах. Обеспечьте безопасность и анонимность ваших данных в сети, начиная с самых элементарных вещей!
python #opencv #computer-vision #ocr #python-tesseract
#python #opencv #компьютерное зрение #ocr #python-тессеракт
Вопрос:
У меня есть эта картинка:
и это моя область интересов:
какое число я хотел бы распознать и «прочитать».
Я не знаю, почему я не могу обнаружить это с помощью pytesseract. Несмотря на то, что я предварительно обрабатываю его и получаю это изображение без шума:
Вот конфигурация, которую я использую для ее чтения:
- Только числа;
- Один символ;
text = pytesseract.image_to_string(number_5, lang='eng',config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
И все же я просто получаю nx0c
в качестве ответа.
Я хотел бы попросить несколько советов о том, как распознавать изображения с уникальными символами (в данном случае только цифры);
А также вопрос об обнаружении чисел. Существует ли модель, которая может искать числа на фотографии и возвращать ограничительную рамку, в которой они расположены?
Комментарии:
1. Ваши вопросы задают разные вещи. Если вы хотите получить поддержку в отношении вашей
pytesseract
проблемы, я бы предложил загрузить полный минимальный рабочий пример (включая изображение), который демонстрирует, что происходит сбой. Кроме того, здесь вы найдете коллекцию моделей обнаружения текста. Я бы предположил, что они также работают для последовательностей цифр.2. Андре, спасибо за ваши комментарии. Я уже просматриваю эту коллекцию моделей обнаружения текста. Что касается полного минимального примера работы, он прямо здесь. Это число 5, например, не может быть прочитано алгоритмом. Когда я пробую это с фотографией, загруженной из Интернета, она работает нормально.
Ответ №1:
Одним из способов обнаружения 5
в изображении было бы маскирование изображения.
Вы могли бы использовать операции с пороговым значением, используя inRange. Во-первых, нам нужно найти значения верхней и нижней границ для порогового значения. После нескольких попыток я решил, что для распознавания подходит следующее.
msk = cv2.inRange(hsv, np.array([0, 0, 175]), np.array([179, 255, 255]))
- нижняя граница равна
np.array([0, 0, 175])
- верхняя граница равна
np.array([179, 255, 255])
Результатом будет:
Здесь, выше, мы можем 5
четко видеть число.
Теперь мы можем применить следующие методы обработки.
krn = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 3))
dlt = cv2.dilate(msk, krn, iterations=1)
thr = 255 - cv2.bitwise_and(dlt, msk)
Результатом будет:
Теперь, если мы применим tesseract
d = pytesseract.image_to_string(thr, config="--psm 10")
Результатом будет:
5
Код:
import cv2
import numpy as np
import pytesseract
# Load the img
img = cv2.imread("MjfJF.png")
# Cvt to hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# Get binary-mask
msk = cv2.inRange(hsv, np.array([0, 0, 175]), np.array([179, 255, 255]))
krn = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 3))
dlt = cv2.dilate(msk, krn, iterations=1)
thr = 255 - cv2.bitwise_and(dlt, msk)
# OCR
d = pytesseract.image_to_string(thr, config="--psm 10")
print(d)
Распознать текст на изображении
Добро пожаловать в наш бесплатный онлайн сервис распознавания текста онлайн
У вас есть текст и вы не хотите его переписывать вручную?
Достаточно выбрать картинку на компьютере, загрузить и выбрать необходимый язык или языки.
Наш сервис поддерживает большое количество языков. Как популярные так и достаточно редкие.
Упростите себе жизнь. Сэкономьте большое количество времени используя возможности компьютера и нашего алгоритма.
Ваши данные вне опасности, после обработки результаты удаляются.
Отзывы
чёт не работает нифига |
п амиши м мики-км.… пища-‚ дтп-п и №Шп№пф об…… сики—шп…“ вот что сделал |
отлично работает, спасибо большое, перевели немецкие справки без проблем. |
спасибо жду результат. |
8 |
Чо не работает |
Отвратительный переводчик |
Полное г….. |
Я делаю скришнот с помощью библиотеки 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