Распознавание штриховых кодов на цифровом изображении при неблагоприятных условиях
Описание подхода к распознаванию штрихового кода на цифровом изображении, позволяющего сканировать коды при плохом освещении и различных углах поворота изображения; схема алгоритма. Преобразование картинки в массив контрастности каждого пикселя картинки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 09.09.2024 |
Размер файла | 1008,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Распознавание штриховых кодов на цифровом изображении при неблагоприятных условиях
Иванова Г.С., доктор технических наук, профессор профессор кафедры «Компьютерные системы и сети»; Зотов М.А. бакалавр, факультет «Информатика, искусственный интеллект и системы управления»; Замула М.И. бакалавр, факультет «Робототехника и комплексная автоматизация», МГТУ им. Н.Э. Баумана Россия
Аннотация
В статье описывается разработанный подход к распознаванию штрихового кода на цифровом изображении, позволяющий сканировать коды при плохом освещении и различных углах поворота изображения. Предлагаемый подход позволяет с помощью программных средств преобразовать закодированные в штриховом коде данные в полезную информацию. При раскодировании информации контрастность штрихов кода определяет порядок логических нулей и единиц в коде, который в последствии можно преобразовать в понятные для получателя данные.
Ключевые слова: штриховой код, штрихкод, декодирование, преобразование цифрового изображения, распознавание штрихкодов.
Annotation
The article describes the developed approach to the recognition of a bar code in a digital image, which allows scanning codes in poor lighting conditions and various image rotation angles. The proposed approach allows using software tools to convert data encoded in a barcode into useful information. When decoding information, the contrast of the code strokes determines the order of logical zeros and ones in the code, which can later be converted into data that is understandable to the recipient.
Key words: barcode, decoding, digital image conversion, barcode recognition.
Штриховой код (штрихкод) -- графическая информация, наносимая на поверхность, маркировку или упаковку изделий, предоставляющая возможность считывания её техническими средствами - последовательность чёрных и белых полос, либо других геометрических фигур [1].
Штрихкодирование используется во многих областях экономики: промышленности, торговле, транспортной сфере, и других, где необходима автоматизация учета продукции.
Штрихкоды используются для идентификации любых объектов учета. Штриховые коды нужны:
- в торговле - для упрощения процесса продаж;
- на складах - для автоматизации бизнес-процессов (приемки, отгрузки, инвентаризации и прочих);
- в охране -- для учета перемещения людей по территории;
- в почтовых службах -- для отслеживания отправлений;
- в библиотеках -- для учета перемещения книг и читателей.
Вопросы генерации штрихкодов менее актуальны в наше время, так как существует множество программных средств, формирующих штриховые коды для розничных потребностей и не только. Когда как сканирование и распознавание штриховых кодов совершенствуются в настоящее время: улучшается качество распознавания кодов в различных условиях, повышается скорость сканирования, разрабатывается программное обеспечение для различных устройств ввода.
Однако проблема автоматического распознавания с учетом разных углов чтения и внешних условий по-прежнему остается актуальной.
Подход к распознаванию штрихового кода
Для преобразования цифрового изображения штрихкода в последовательность битов необходимо каждую черную полосу преобразовать в логическую единицу, а белую - в ноль. Но изображение может иметь различное разрешение, что делает ширину одной полосы непостоянной величиной. Ширина одной полосы определяется с помощью различных подходов. Один из них - это распознавание в штрихкоде стартового символа и определение его длины на цифровом изображении [2].
Также одна из самых частых проблем при сканировании штрихкода - это ситуация, когда на сканирование поступает перевернутый штрихкод. Решается это с помощью контрольного числа - разновидность контрольной суммы, добавляется обычно в конец длинных номеров с целью первичной проверки их правильности. Применяется с целью уменьшения вероятности ошибки при обработке таких номеров: машинном считывании с упаковки товара, записи в документы, голосовой передаче от человека к человеку и другое [3]. Если контрольное число, хранящееся в штрихкоде, не совпадает с рассчитанным при сканировании, то изображение штрихкода поворачивается на 180 градусов и пропускается через алгоритм распознавания еще раз.
Предлагаемый подход распознавания штриховых кодов заключается в том, чтобы вырезать из штрихкода полосу, толщиной в один пиксель, записать контрастность каждого пикселя в массив, инвертировать каждое значение (так как контрастность черного пикселя равна 0, а в контексте штрихкодов черный - это единица). Далее нужно определить ширину одного штриха. Для этого выделяем начало стартового символа, записывая моменты перехода значений массива через среднее значение контрастности по всему массиву. Зная длину одного штриха, можно с легкостью дешифровать весь штрихкод, считая переходы значений массива через середину. Получив двоичную последовательность, необходимо дешифровать ее по таблице кодирования. Сигналом правильного распознавания штрихкода будет совпадение подсчитанного контрольного числа с контрольным числом, указанным в штрихкоде. Схема алгоритма сканирования штрихкода представлена на рисунке 1.
Характеристики алгоритма:
- функциональное назначение алгоритма - сканирование штрихкода;
- входные данные - файл с цифровым изображением штрихкода;
- выходные данные - дешифрованный код (код), если дешифрование прошло успешно, или 0, если неуспешно.
В блоке №3 изображение растягивается в 2 раза для распознавания штрихкодов при плохом освещении: переходы между белыми и черными полосами становятся более контрастными.
В блоке № 5 производится работа с преобразованием картинки в массив контрастности каждого пикселя картинки. Это возможно сделать, например, с помощью библиотеки numpy [4] языка Python.
Таблица 1. Результаты тестирования
Тестирование подхода
По разработанному алгоритму была написана и протестирована программа на языке Python. На результат сканирования еще влияет качество картинки: посторонние шумы, искажения, деформации [5], поэтому было проведено оценочное тестирование результатов сканирования при разных условиях съемки штрихкода. Результаты тестирования, представленные в таблице 1, показали, что только при очень плохом освещении алгоритм не распознал штрихкод.
Рисунок 1 . Схема алгоритма распознавания штрихкода
Заключение
В статье рассмотрен разработанный подход к сканированию и распознаванию штриховых кодов. Для распознавания штрихкодов применялся анализ контрастности изображения, что позволило более точно распознавать полосы штрихкода.
Описанный подход показал свою надежность при различных условиях съемки цифрового изображения штрихкода.
сканирование штрихкод освещение контрастность
Использованные источники
1. Райкова Е.Ю. Теоретические основы товароведения и экспертизы. - М .: ИТК «Дашков и Ко», 2012. - С. 73. - 412 с.
2. Краснобаев А.А. Алгоритмы распознавания штриховых кодов / А.А. Краснобаев // Препринты ИПМ им. М.В. Келдыша. - 2004. - № 84. - С. 1-29.
3. Мальчуков А.Н. Быстрое вычисление контрольной суммы CRC: таблица против матрицы / А.Н. Мальчуков, А.Н. Осокин // Прикладная информатика. - 2010. - № 2(26). - С. 58-63.
4. Pillow Documentation
5. Якшин А.А. Анализ влияния ошибок оптического распознавания штриховых кодов на работу входящего участка служебного делопроизводства / А.А. Якшин // Технические и технологические системы : Материалы девятой Международной научной конференции «ТТС-17», Краснодар, 22-24 ноября 2017 года / Кубанский государственный технологический университет, Краснодарское высшее военное авиационное училище летчиков имени А.К. Серова; под общей редакцией Б.Х. Гайтова. - Краснодар: Общество с ограниченной ответственностью "Издательский Дом - Юг", 2017. - С. 107-112.
Размещено на Allbest.ru
...Подобные документы
Создание программного приложения для искажения графической информации в цифровом изображении и последующего ее восстановления. Декартово произведение множеств. Передача ключа шифрования. Генерация псевдослучайных чисел. Умножение, транспонирование матриц.
курсовая работа [1,7 M], добавлен 07.09.2016История применения кодов. Технология применения кодов в современных условиях. Анализ "экстремальных кодов" - кодов, границы параметров которых достигают равенства. Способность кода корректировать ошибки, ее зависимость от величины кодового расстояния.
контрольная работа [164,9 K], добавлен 14.07.2012Описание алгоритма поворота изображения. Вычисление синуса и косинуса угла поворота изображения. Алгоритм и реализация функции поворота изображения вокруг центра на заданный пользователем угол. Проверка на соответствие диапазону допустимых значений.
курсовая работа [1,3 M], добавлен 23.01.2015Исследование причин появления и особенностей проявления муара в изображении. Обзор вида муара при различных углах наложения двух растровых структур. Рекомендаций по предотвращению муара при четырехцветной печати. Анализ основных методов подавления муара.
курсовая работа [3,5 M], добавлен 27.10.2013Разработка полноценной правильно функционирующей игровой программы "Парные картинки", изучение процедур и функций. Использование масштабируемых средств для построения баз данных. Компоненты Delphi в программе. Описание пользовательского интерфейса.
курсовая работа [1,3 M], добавлен 13.07.2012Этапы разработки системы реального времени для распознавания лиц на статическом изображении в условиях сложных сцен. Основные понятия алгоритма AdaBoost. Использование примитивов Хаара для описания свойств изображений. Среда разработки "Borland Delphi".
курсовая работа [6,8 M], добавлен 06.01.2011Фильтрация шумов изображения. Алгоритмы его бинаризации и поворота. Формирование информативных признаков для распознавания нот. Схема программного обеспечения. Описание классов, функций, методов, реализованных в программе. Тестирование приложения.
курсовая работа [2,0 M], добавлен 17.12.2013Основные правила нахождения монохромных изображений. Задача преобразования Хафа. Выделение кривых, образованных точками интереса. Выделение прямых и окружностей на изображении. Модификации преобразования Хафа. Вероятностное и случайное преобразование.
презентация [127,4 K], добавлен 26.12.2012Существующие методы нахождения графических примитивов и программных реализаций. Базовое преобразование Хафа: поиск прямых, выделение окружностей на изображении, нахождение кривых высшего порядка. Составление руководства программиста и пользователя.
курсовая работа [2,7 M], добавлен 20.03.2012Обзор существующих алгоритмов для обнаружения лиц. Выравнивание лица с помощью разнообразных фильтров. Использование каскадного классификатора Хаара для поиска лиц на изображении. Распознавание лиц людей с использованием локальных бинарных шаблонов.
дипломная работа [332,4 K], добавлен 30.09.2016Основные понятия штрихового кодирования. Общие положения данной технологии. Классификация штриховых кодов. Структура EAN-13 и EAN-8. Штриховой код на печатную продукцию и кодирование в швейном производстве. Эффективность его применения в России.
курсовая работа [1,1 M], добавлен 24.03.2009Теоретический анализ современных методик создания программных средств по распознаванию образов, их преимущества и недостатки. Описание предметной области, обоснование выбора технологии и разработка проекта программного средства по распознаванию образов.
дипломная работа [2,3 M], добавлен 20.05.2013Анализ различных способов хранения информации: одномерный массив, типизированный файл и динамический список. Сортировка только положительных чисел. Словесное описание алгоритма. Блок-схема процедуры обработки данных с помощью одномерного массива.
контрольная работа [319,7 K], добавлен 29.05.2014Понятие и назначение штрихового кода, его разновидности и сферы применения. Параметры символики и структура символа в кодах. Алгоритм преобразования числовых данных в знаки Interleaved 2 of 5. Распознавание штрих-кода и вычисление контрольной цифры.
контрольная работа [424,1 K], добавлен 23.08.2009Практическое применение индексированного цвета для разработки Web-графики. Установка параметров преобразования в индексированные цвета. Вычисление цветов для создания палитры на основе цветов, имеющихся в изображении. Прозрачные области на изображении.
контрольная работа [544,0 K], добавлен 21.03.2012Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.
дипломная работа [1,0 M], добавлен 16.06.2013Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.
курсовая работа [1,5 M], добавлен 11.12.2012Рассмотрение программных продуктов, обеспечивающих решение задач по распознаванию образов. Видеопотоки от камер видеонаблюдения. Изменение размера и формата представления кадра. Отслеживание движения объекта в кадре. Распознавание номеров автотранспорта.
лабораторная работа [1,4 M], добавлен 28.11.2021Алгоритм реализации векторного пространства, метод фильтрации шумов на изображении. Формально-логическая модель разработки программного обеспечения, выбор инструментальных средств его реализации. Анализ точности совпадения распознанного изображения.
дипломная работа [2,7 M], добавлен 13.02.2013Понятие визуальной системы ввода информации, ее сущность и особенности, место и роль в современном развитии интерфейсов между человеком и компьютером. Развитие технологии автоматического обнаружения и распознавания лица, контуров губ в видеопотоке.
научная работа [94,3 K], добавлен 29.01.2009