markusfisch / BinaryEye

Yet another barcode scanner for Android
https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye
MIT License
1.42k stars 117 forks source link

Restrict Format and Barcode Formats settings ignored. #338

Open Jsewill opened 1 year ago

Jsewill commented 1 year ago

When attempting to scan barcodes continuously, with a restriction set and/or formats selected, these settings seem to be ignored. I.e., After restricting to UPC A, the app still manages to incorrectly scan (the same barcode as) an EAN 13. I assume the incorrect scan is due to rolling shutter and focus issues, but that doesn't account for these settings being ignored.

markusfisch commented 1 year ago

Well, EAN-13 is a superset of UPC-A, and so there is some room for misinterpretation (see here for details on how both formats are related).

The format restriction is not ignored in these misreadings, at least not in Binary Eye. I suspect that the barcode reading library (ZXing C++) may be reporting an EAN-13 even though it is set up for UPC-A only. This may happen because the decoding of EAN-13 and UPC-A is done with the same code (see ODMultiUPCEANReader.cpp if you are interested).

Unfortunately, without your actual example, I can't say exactly why this happens 😬

Jsewill commented 1 year ago

That is probably what is going on. So, there's no way around it without a change to the ZXing C++ codebase? I really like what you've done with this application. It'd be nice to confidently scan continuously, but I might be able to filter out the ones reported as EAN-13 after the fact. I really wanted to treat my phone as a proper scanner, and just scan away. I suppose I should buy an actual scanner for that.