exponenta event banner

readBarcode

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

Описание

пример

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

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

msg = readBarcode(I,roi) задает прямоугольную область, представляющую интерес (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 в изображении, содержащем штрихкод.

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

Поиск QR-штрих-кода в ROI.

[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] указывает начальную точку окупаемости инвестиций относительно верхнего левого угла изображения.

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

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

  • '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-by-2 для 2-D штрихкодов или матрицы 2 на 2 для 1-D штрихкодов. Элементы матрицы представляют местоположения шаблона поиска.

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

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

Совет

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

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

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

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

Представлен в R2020a