Сканер штрих-кода, использующий ZXING.net, не обнаруживает алфавиты в штрих-коде, но хорошо работает для всех числовых преобразований - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь собрать сканер BarCode в Unity с использованием библиотеки Vuforia ARCamera и zxing.net. Я создал это приложение с кодом ниже, и он декодирует только числовые штрих-коды. Я ничего не вижу для буквенных штрих-кодов.

Я создал новый проект Unity, добавил ARCamera и TextBox на Canvas. Я пытаюсь показать декодированный штрих-код внутри textBox.

using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using Vuforia;
using System.Threading;
using ZXing;
using ZXing.QrCode;
using ZXing.Common;

public class CameraImageAccess : MonoBehaviour
 {
     private bool cameraInitialized;
     private readonly PIXEL_FORMAT mPixelFormat = PIXEL_FORMAT.GRAYSCALE;
     public Transform DisplayCode1;
     public int frameCount;
     void Start()
     {
         barCodeReader = new BarcodeReader();
         StartCoroutine(InitializeCamera());
         DisplayCode1 = GameObject.Find("DisplayCode").transform;
     } 

 private IEnumerator InitializeCamera()
 {
     // Waiting a little seem to avoid the Vuforia's crashes.
     yield return new WaitForSeconds(1.25f);
    var isFrameFormatSet = CameraDevice.Instance.SetFrameFormat(mPixelFormat, true);
    Debug.Log(String.Format("FormatSet : {0}", isFrameFormatSet));

    // Force autofocus.
    var isAutoFocus = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    if (!isAutoFocus)
    {
        CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_NORMAL);
    }
    Debug.Log(String.Format("AutoFocus : {0}", isAutoFocus));
    cameraInitialized = true;
}

private void Update()
{
    if (cameraInitialized)
    {
        try
        {
            var cameraFeed = CameraDevice.Instance.GetCameraImage(mPixelFormat);
            Debug.Log("Image Captured");
            if (cameraFeed == null)
            {
                Debug.Log("cameraFeed is null");
                return;
            }
            var data = barCodeReader.Decode(cameraFeed.Pixels, cameraFeed.Width, cameraFeed.Height, RGBLuminanceSource.BitmapFormat.RGB24);
            Debug.Log("barcode decoded");
            if (data != null)
            {
                // QRCode detected
                DisplayCode1.GetComponent<Text>().text = data.Text;
                Debug.Log(data.Text);
            }
            else
            {
                Debug.Log("No QR code detected !");
            }
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...