readBarcode

Обнаружение и декодирование 1-D или 2-D штрих-кода в изображении

Описание

пример

msg = readBarcode(I) обнаруживает и декодирует 1-D или 2-D штрих-код в вход изображении и возвращает сообщение, сопоставленное с этим штрих-кодом.

Если вход изображение содержит несколько штрихкодов, readBarcode функция декодирует только первый обнаруженный штрих-код.

msg = readBarcode(I,roi) задает прямоугольную видимую область (ROI), чтобы уменьшить область, в которой функция ищет штрихкод. Эта информация только для чтения должен полностью содержаться в входе изображении.

msg = readBarcode(___,format) задает форматы штрихкодов, чтобы уменьшить типы штрихкодов, для которых выполняется поиск функции. Задайте этот аргумент в дополнение к любой комбинации входных аргументов в предыдущих синтаксисах.

[msg,detectedFormat,loc] = readBarcode(___) дополнительно возвращает формат, detectedFormat, и местоположение, loc, обнаруженного штрихового кода.

Примеры

свернуть все

Считайте изображение, содержащее штрих-код, в рабочую область.

I = imread("barcode1D.jpg");

Обнаружите штрих-код и декодируйте его сообщение.

msg = readBarcode(I);

Отображение декодированного сообщения штрих-кода.

disp("Decoded barcode message: " + msg)
Decoded barcode message: 1234567890128

Считайте изображение, содержащее штрих-код, в рабочую область.

I = imread("barcode1D.jpg");

Поиск изображения по 1-D штрихкоду, возврат его сообщения, формата и местоположения.

[msg,detectedFormat,loc] = readBarcode(I,'1D');

Отображение обнаруженного формата штрих-кода.

disp("Barcode format: " + detectedFormat)
Barcode format: EAN-13

Аннотируйте изображение декодированным сообщением штрихкода.

xyBegin = loc(1,:);
Imsg = insertText(I,xyBegin,msg,'BoxOpacity',1,'FontSize',30);

Вставьте линию, чтобы отобразить скан строку.

imSize = size(Imsg);
Imsg = insertShape(Imsg,'Line',[1 xyBegin(2) imSize(2) xyBegin(2)],'LineWidth',5);

Отобразите изображение.

imshow(Imsg)

Figure contains an axes. The axes contains an object of type image.

Считайте изображение, содержащее штрих-код.

I = imread("barcodeQR.jpg");

Определите информация только для чтения в изображении, содержащем штрих-код.

roi = [470, 300, 720, 620];

Поиск QR-штрихкода в информация только для чтения.

[msg,~,loc] = readBarcode(I,roi,"QR-CODE");

Аннотируйте изображение декодированным сообщением от обнаруженного штрих-кода.

xyText =  loc(2,:);
Imsg = insertText(I,xyText,msg,"BoxOpacity",1,"FontSize",25);

Вставьте красные круги на изображение, чтобы указать местоположение шаблона поиска.

Imsg = insertShape(Imsg, "FilledCircle", [loc, ...
     repmat(10, length(loc), 1)],"Color","red","Opacity",1);

Отобразите изображение.

imshow(Imsg)

Figure contains an axes. The axes contains an object of type image.

Входные параметры

свернуть все

Входное изображение, заданное как труколор или полутоновое изображение.

Интересующая область, заданная как четырехэлементный вектор-строка вида [x, y, width, height]. Прямоугольная информация только для чтения должен полностью содержаться в входе изображении. [x, y] задает начальную точку для информации только для чтения относительно верхнего левого угла изображения.

Если изображение содержит несколько штрихкодов, установка ROI может помочь функции обнаружить конкретный штрихкод. Для получения дополнительной информации см. раздел «Локализация и чтение нескольких штрихкодов в изображении».

Формат штрихкода, заданный как один из следующих опций. В таблице перечислены допустимые форматы штрихкодов.

  • 'all' - Используйте эту опцию, чтобы задать все допустимые форматы штрихкодов. Если вы не задаете формат, функция использует эту опцию.

  • '1D' - Используйте эту опцию, чтобы задать все действительные форматы 1-D штрихкодов.

  • '2D' - Используйте эту опцию, чтобы задать все действительные форматы 2-D штрихкодов.

  • Вектор символов или строковый скаляр допустимого формата - используйте эту опцию, чтобы задать один формат штрихкода.

  • Массив ячеек из векторов символов или вектор из строк допустимых форматов - Используйте эту опцию, чтобы задать несколько форматов штрихкода. Функция определяет приоритеты поиска определенных форматов штрихкодов на основе порядка элементов в этом массиве.

Установка формата может сократить время запуска функции путем ограничения поиска по штрихкоду.

1-D форматы2-D форматы
UPC-AQR-CODE
UPC-EDATA-MATRIX
EAN-8AZTEC
EAN-13PDF-417
CODE-39 
CODE-93 
CODE-128 
CODABAR 
ITF 
RSS-14 
RSS-EXPANDED 

Выходные аргументы

свернуть все

Сообщение штрихкода, возвращаемое как строковый скаляр.

Обнаружен формат штрих-кода, возвращенный как строковый скаляр одного из форматов в этой таблице.

1-D форматы2-D форматы
UPC-AQR-CODE
UPC-EDATA-MATRIX
EAN-8AZTEC
EAN-13PDF-417
CODE-39 
CODE-93 
CODE-128 
CODABAR 
ITF 
RSS-14 
RSS-EXPANDED 

Расположение штрихкода, возвращенного как матрица M-на-2 для 2-D штрихкодов или матрица 2 на 2 для 1-D штрихкодов. Элементы матрицы представляют местоположения шаблона поиска.

Штрихкодloc ЗначениеРасположение шаблона Finder
2-DM -by-2 матрица. M представляет количество [x, y] местоположений шаблонов поиска.

1-DМатрица 2 на 2 вида [x1, y1; x2, y2], где каждая строка представляет расположение шаблона поиска.

Совет

  • Функция обнаруживает только четко видимые штрихкоды.

  • Установка формата может сократить время запуска функции путем ограничения поиска по штрихкоду.

  • Для шумных изображений с неясными штрихкодами используйте функции предварительной обработки изображений, такие как imsharpen.

  • Функция обнаруживает только горизонтально или вертикально выровненные штрихкоды. Использовать imrotate для исправления плохо выровненных штрихкодов.

Введенный в R2020a