Прямая маркировка деталей (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)
Чтобы обновить настройку параметра:
- Преобразуйте строку параметра 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 г.