Не удалось обнаружить штрих-код на встроенном устройстве под управлением Android 6.1 с помощью ZBar - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь определить штрих-код по изображению на моей встроенной платформе, используя исходный код zbarimg.Я не получаю ошибок при сборке библиотеки zbar или файлов zbarimg.c.Однако, когда я пытаюсь декодировать штрих-код через двоичный файл 'zbarimg' на моем встроенном устройстве, я получаю следующую ошибку:

scanned 0 barcode symbols from 1 images in 0.21 seconds

WARNING: barcode data was not detected in some image(s)

  things to check:

    - is the barcode type supported?  currently supported symbologies are:
      EAN/UPC (EAN-13, EAN-8, EAN-2, EAN-5, UPC-A, UPC-E,
      ISBN-10, ISBN-13), Code 128, Code 93, Code 39, Codabar,
      DataBar, DataBar Expanded, and Interleaved 2 of 5
    - is the barcode large enough in the image?
    - is the barcode mostly in focus?
    - is there sufficient contrast/illumination?

То же изображение отлично декодируется на моем компьютере.

ЧерезВ некоторых исследованиях я заметил, что вызов функции "zbar_image_first_symbol" возвращает ноль.

Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я исправил ошибку.Оказывается, что в файле config.h, который я использовал, были закомментированы макросы для штрих-кодов, т.е. были закомментированы ENABLE_EAN, ENABLE_CODE128, ENABLE_CODE39.Из-за этого функция "zbar_scan_y" (присутствующая в img_scanner.c) не смогла определить тип символов, а syms-> nsysm вернула бы NULL.

PS: Ниже приведен список ссылок, которые будутпоможет вам портировать zbar на ОС Android.

1.) Источник для Android: https://github.com/ZBar/ZBar

2.) Шаги для компиляции с Android можно получить из: http://www.blackdogfoundry.com/blog/zbar-bar-code-qr-code-reader-android/

Обратите внимание, что при компиляции с использованием описанных выше шагов вы можете столкнуться с ошибками неопределенной ссылки.Некоторые исходные файлы должны быть включены в файл Android.mk.Кроме того, в патче, представленном на предыдущих этапах, макросы штрих-кода будут закомментированы в файле config.h.

0 голосов
/ 13 ноября 2018

Zbar с использованием формата изображения nv21 из предварительного просмотра камеры. Если вы используете другой формат данных изображения, вы должны преобразовать его в nv21. Вы можете сделать это с помощью библиотеки easyRS или с помощью ручного преобразования байтов в байты.

Nv21Image nv21Image = Nv21Image.bitmapToNV21 (renderScript, result);

После этого вы можете настроить библиотеку zbar с пиксельным форматом "Y800"

Штрихкод изображения = новое изображение (nv21Image.width, nv21Image.height, "Y800"); barcode.setData (nv21Image.nv21ByteArray);

...