Прямая маркировка деталей (DPM) — это процесс постоянной маркировки оборудования некоторой информацией, например штрих-кодами. Типичные символы штрих-кода DPM включают DataMatrix и QR-код. Начиная с версии 7.2, Dynamsoft Barcode Reader SDK поддерживает декодирование штрих-кодов DPM. В этой статье я расскажу, как создать простой считыватель штрих-кодов на Python для чтения кода DPM DataMatrix.

Как использовать Python для декодирования Direct Part Marking DataMatrix

Получите исходный код Python barcode extension, созданный с помощью Dynamsoft Barcode Reader C/C++ SDK.

Следуйте файлу README.MD, чтобы собрать и установить расширение Python для Windows, Linux или macOS.

Чтобы декодировать штрих-коды из файла изображения, мы можем использовать следующий код:

from dbr import DynamsoftBarcodeReader
dbr = DynamsoftBarcodeReader()
dbr.initLicense('LICENSE-KEY')
results = dbr.decodeFile(fileName, dbr.BF_ALL)
for result in results:
    print('barcode format: ' + result[0])
    print('barcode value: ' + result[1])

Примечание: вы можете получить бесплатный ключ пробной лицензии, зарегистрировав учетную запись Dynamsoft.

Вот изображение DPM DataMatrix.

Если мы запустим приведенный выше код для декодирования изображения DPM, он не сможет получить результаты штрих-кода. Причина в том, что настройка по умолчанию не поддерживает декодирование DPM. Вы должны настроить параметры для случая DPM.

Согласно онлайн-документации, мы можем включить режим DPM, используя следующий код C:

runtimeSettings.furtherModes.dpmCodeReadingModes[0] = DPMCRM_GENERAL;
runtimeSettings.localizationModes[0] = LM_STATISTICS_MARKS;

Dynamsoft Barcode Reader SDK поддерживает ввод шаблона параметров в формате JSON. Мы можем сначала просмотреть параметры по умолчанию и найти соответствующие свойства:

params = dbr.getParameters()
print(params)

Чтобы обновить настройку параметра:

  1. Преобразуйте строку параметра JSON в объект JSON:
import json
json_obj = json.loads(params)

2. Обновите значения свойств, относящиеся к DPM:

templateName = json_obj['ImageParameter']['Name']
json_obj['ImageParameter']['DPMCodeReadingModes'][0]['Mode'] = 'DPMCRM_GENERAL'
json_obj['ImageParameter']['LocalizationModes'][0]['Mode'] = 'LM_STATISTICS_MARKS'

3. Преобразуйте объект JSON в строку и обновите параметры для оптимизации алгоритма штрих-кода:

params = json.dumps(json_obj)
ret = dbr.setParameters(params)

Теперь мы можем успешно расшифровать код Direct Part Marking DataMatrix:

Полный код:

Исходный код

https://github.com/dynamsoft-dbr/python

Первоначально опубликовано на https://www.codepool.biz 9 октября 2019 г.