ericblade / quagga2

An advanced barcode-scanner written in Javascript and TypeScript - Continuation from https://github.com/serratus/quaggajs
MIT License
758 stars 85 forks source link

Code 39 sometimes prepending an "I" character #220

Closed Okinodwa closed 3 years ago

Okinodwa commented 4 years ago

When scanning a VIN image using code_39_reader, it is sometimes adding an "I" before the result. It happens everytime with the following image:

https://static.oemdtc.com/Uploads/A10-048-03.jpg

The scanner produces the result: I5FNRL38488B411196 When it should produce the result: 5FNRL38488B411196

github-actions[bot] commented 4 years ago

Thank you for filing an issue! Please be patient. :-)

ericblade commented 4 years ago

Hi @0Zidane0 ! Thanks for filing an issue, and providing a sample to test with.

I've added your sample to the test suite as test/fixtures/code_39_vin/image-011.jpg, and it seems to be working without an issue. Can you provide your Quagga config, or any additional information that might be helpful to repro?

image

Okinodwa commented 4 years ago

Here's the config I'm using:

{
    inputStream: {
        name: "Live",
        type: "LiveStream",
        constraints: {
            width: window.innerWidth,
            height: window.innerHeight,
            facingMode: "environment"
        },
    },
    area: {
        top: "0%",
        right: "0%",
        left: "0%",
        bottom: "0%"
    },
    numOfWorkers: navigator.hardwareConcurrency,
    locate: true,
    frequency: 1,
    multiple: false,
    debug: {
        drawBoundingBox: true,
        showFrequency: true,
        drawScanline: true,
        showPattern: true,
        showCanvas: true
    },
    locator: {
        halfSample: true,
        patchSize: "x-large",
        debug: {
            showCanvas: true,
            showPatches: true,
            showFoundPatches: true,
            showSkeleton: true,
            showLabels: true,
            showPatchLabels: true,
            showRemainingPatchLabels: true,
            boxFromPatches: {
                showTransformed: true,
                showTransformedBox: true,
                showBB: true
            }
        }
    },
    decoder: {
        readers: [
            "code_128_reader",
            "code_39_reader",
            "code_39_vin_reader",
        ]
    },
}

And it even did it on the "Live with Locator" demo on the old version's Github. (My project used to use the old version, but I'm fairly certain I've replaced everything with the Quagga2 files)

image

Okinodwa commented 4 years ago

It now occurs to me that both code_39 and code_39_vin readers are picking this up, and only the code_39 is prepending the "I". If I remove code_39 from my readers array, that may just fix the issue for me, and this may not be an actual bug.

ericblade commented 4 years ago

i have a suspicion that might be the case, i'm not sure exactly what the difference is between code_39 and code_39_vin. If you need other code_39 scanning that isn't VINs, you might try placing it after code_39_vin in the readers array (although I think we still have an outstanding Issue to verify if readers actually respond in the order they are listed or not).

I did not explicitly test in LiveStream, but I did run both the node and browser ImageStream tests.

ericblade commented 4 years ago

@0Zidane0 anything further to investigate on this, or can i close it?

ericblade commented 3 years ago

I'm going to presume that @0Zidane0 has his application working, reopen if not