Как распознать семь сегментов Отображает контент с помощью ssocr (оптического распознавания семи сегментов) в Ubuntu 16.04

7-сегментный дисплей (7-сегментный дисплей) состоит из семи светодиодов, расположенных в прямоугольной форме. Каждый из семи светодиодов называется сегментом, потому что при освещении сегмент образует часть числовой цифры (как десятичной, так и шестнадцатеричной), которая должна отображаться. В одном пакете иногда используется дополнительный 8-й светодиод, что позволяет указывать десятичную точку (DP), когда два или более 7-сегментных дисплея соединены вместе, чтобы отображать числа больше десяти. В некоторых приложениях вам потребуется использовать OCR для автоматического распознавания этого номера, однако, поскольку вы, возможно, знаете распознавание таких символов, как показано в этой статье, с обычными алгоритмами OCR или с такими инструментами, как tesseract, вы не сможете узнайте числа правильно:

Распознавание семи сегментов с помощью традиционного распознавания текста

Как ни прискорбно, как видите, распознанные символы были неправильно распознаны. Все обычные алгоритмы потерпят неудачу во время идентификации чисел, однако, есть простой способ идентифицировать такие числа с помощью другого инструмента. Мы говорим о SSOCR, крошечной программе, которая позволяет распознавать цифры семисегментного дисплея. В этой статье мы научим вас, как правильно установить это приложение на ваш сервер Ubuntu 16.04 и как его использовать.

1. Установите необходимые инструменты сборки

Чтобы собрать ssocr из его исходного кода, вам понадобятся некоторые функции библиотеки xlib (libx11) в вашей системе, а также libimlib2 (библиотека для загрузки изображений, рендеринга, сохранения изображений). Вы можете легко установить их с помощью следующих команд:

sudo apt-get update
sudo apt-get install libx11-dev
sudo apt-get install libimlib2-dev

После установки вы можете продолжить сборку библиотеки ssocr без каких-либо проблем.

2. Клонируйте исходный код ssocr и соберите

Перейдите к загрузке исходного кода библиотеки в какой-то каталог вашей системы с помощью git:

git clone https://github.com/auerswal/ssocr.git

Это создаст каталог ssocr с исходным кодом внутри, а затем переключится на каталог в cli:

cd ssocr

И, наконец, начните сборку библиотеки с помощью команды make:

make

После начала сборки ssocr с помощью команды make вы получите короткий вывод в cli:

SSOCR Build from cli

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

sudo mv ./ssocr /usr/local/bin/ssocr

Это позволит вам выполнить ssocr Команда из любого места в Cli, например, чтобы напечатать версию:

ssocr --version

Текущая версия библиотеки оптического распознавания символов Seven Segment — 2.19.0, разработчик Эрик Ауэрсвальд. Эта программа поставляется без АБСОЛЮТНО ГАРАНТИИ, и вы можете распространять ее в соответствии с условиями GNU GPL (версия 3 или более поздняя). Для получения дополнительной информации об этом инструменте, пожалуйста, посетите официальный репозиторий на Github здесь или же официальный сайт.

3. Использование ssocr

Теперь самое интересное! ssocr позволит вам определить номера семисегментного дисплея на любом изображении, указав путь к нему в качестве аргумента при запуске инструмента:

ssocr -t image.png

ssocr напечатает распознанные числа в выводе как ответ, как любой другой инструмент CLI, так что вы можете использовать этот инструмент в сочетании с другими приложениями, используя любой язык программирования. Инструмент довольно гибкий, так как есть много опций, которые вы можете установить с помощью команды:

  • -h, --help: Печатает сообщение об использовании, показывает значения по умолчанию, описывает работу программы и показывает возможные коды выхода.
  • -v, --verbose: Печатаются некоторые сообщения о выполнении программы.
  • -V, --version: Печатает версию и информацию об авторских правах.
  • -t, --threshold=THRESHOLD: Установите порог яркости, используемый для отличия черного от белого. ПОРОГ интерпретируется в процентах.
  • -a, --absolute-threshold: Используйте значение ПОРОГА без регулировки. В противном случае ПОРОГ регулируется в соответствии с интервалом яркости, используемым на изображении.
  • -T, --iter-threshold: Используйте итерационный метод (одномерную кластеризацию по k-среднему значению), чтобы определить порог, используемый для различения черного от белого ПОРОГОВОЕ значение, данное через
  • -t THRESHOLD : устанавливает начальное значение.
  • -n, --number-pixels=NUMBER: Установите количество пикселей переднего плана, которые должны быть найдены в линии сканирования, чтобы распознать сегмент. Может использоваться для игнорирования некоторого шума на картинке.
  • -i, --ignore-pixels=NUMBER: Установите количество пикселей переднего плана, которые игнорируются при принятии решения, состоит ли столбец только из пикселей фона или переднего плана. Может использоваться для игнорирования некоторого шума на картинке.
  • -d, --number-digits=NUMBER: Указывает количество цифр, показанных на изображении. Если NUMBER равен -1, количество цифр определяется автоматически.
  • -r, --one-ratio=RATIO: Установите порог отношения высоты / ширины, чтобы распознавать цифру как единое целое. RATIO принимает только целые числа.
  • -m, --minus-ratio=RATIO: Установите соотношение ширины и высоты, чтобы распознавать знак минус. RATIO принимает только целые числа.
  • -o, --output-image=FILE: Записать обработанное изображение в файл. Обычно изображение не записывается на диск. Если используется стандартное расширение, оно интерпретируется как используемый формат изображения.
  • -O, --output-format=FORMAT: Укажите формат изображения. Этот формат должен распознаваться Imlib2, используются стандартные расширения файлов.
  • -p, --process-only: Обрабатывать только указанные команды, без сегментации и распознавания символов. Должен использоваться вместе с —output-image = FILE.
  • -D, --debug-image[=FILE]: Напишите отладочное изображение, показывающее результаты определения порога, сегментации и распознавания символов. Изображение записывается в testbild.png, если не указано имя файла FILE.
  • -P, --debug-output: Печать информации, полезной для отладки.
  • -f, --foreground=COLOR: Укажите цвет переднего плана (черный или белый). Это также автоматически устанавливает цвет фона.
  • -b, --background=COLOR: Укажите цвет фона (черный или белый). Это также автоматически устанавливает цвет переднего плана.
  • -I, --print-info: Печать размеров изображения и диапазона используемых значений яркости в stderr.
  • -g, --adjust-gray: Используйте значения T1 и T2, заданные для команды gray_stretch, в виде процентов вместо абсолютных значений яркости.
  • -l, --luminance=KEYWORD: Управляет видом вычисления яркости. Используя help as KEYWORD, выдает список ключевых слов с кратким описанием используемой формулы. По умолчанию должно работать хорошо.
  • -S, --ascii-art-segments: Печать распознанных сегментов ASCII art в stderr.
  • -X, --print-as-hex: Изменяет формат вывода, чтобы использовать строку шестнадцатеричных чисел, разделенных двоеточиями. Шестнадцатеричные числа представляют установленные сегменты дисплея. Это может использоваться в сочетании с внешней программой для использования другой интерпретации сегментов набора (например, другой шрифт отображения или исправление ошибок, если отображаются только некоторые конкретные цифры / символы или даже слова). См. Справочную страницу для информации о значениях.
  • -C, --omit-decimal-point: Опустить десятичные точки из вывода. Десятичные точки по-прежнему распознаются и подсчитываются по количеству цифр.
  • -c, --charset=KEYWORD: Выберите набор символов, которые должен распознавать ssocr. Использование справки в качестве KEYWORD выводит список ключевых слов с кратким описанием включенных символов.

Код выхода инструмента CLI может ссылаться на:

  • 0: если правильное количество цифр было распознано
  • 1: если найдено другое количество цифр
  • 2: если одна из цифр не может быть распознана
  • 3: только при успешной обработке изображения
  • 42: если -h, -V или -l помогают
  • 99: в противном случае
Ссылка на основную публикацию
Adblock
detector