Library: Multiple Codes in one image

Created on 3 Sep 2020  Â·  7Comments  Â·  Source: zxing-js/library

Would be nice if decodeFromVideoDevice/decodeFromImage could return an array result when multiple codes are detected.

Here is an example

image6

feature request

Most helpful comment

I wanted the capacity to read multiple QRs in one image too. // In case anyone wonders, for a small tool.

This is what I found by far:

  • The QR related classes (QRCodeReader qrcode/Decoder and especially qrcode/Detector) do not assume multiple QR in 1 image. For an image of 2 vertically aligned QR, it would find 4 Finder Patterns (from 2 QR codes) in the left, and fail with a checksum error.
  • It should be possible to group Find Patterns from their positions (I'm not a CV guru though), and feed each group to Decoder to extract QRs correctly.

One thing is, I'm not sure if such changes or hacks are welcome in this repository: supporting multiple QRs would require new APIs, and it started as a port of java ZXing after all.

All 7 comments

I know that's possible for PDF417, not sure about the rest. It is certainly something to look for since more people are asking for it.

The company I work for is willing to pay to have this capability, and is also willing to keep that work open sourced in accordance with the terms of the license. Our application needs to scan multiple code128 and/or QRs in a single image or video stream. We’ve looked into commercial/enterprise libraries that can do it, but we figured why not just take that money and pay this team to get this feature in place. So, any suggestions by the contributors of this library on how we could get that going?

I wanted the capacity to read multiple QRs in one image too. // In case anyone wonders, for a small tool.

This is what I found by far:

  • The QR related classes (QRCodeReader qrcode/Decoder and especially qrcode/Detector) do not assume multiple QR in 1 image. For an image of 2 vertically aligned QR, it would find 4 Finder Patterns (from 2 QR codes) in the left, and fail with a checksum error.
  • It should be possible to group Find Patterns from their positions (I'm not a CV guru though), and feed each group to Decoder to extract QRs correctly.

One thing is, I'm not sure if such changes or hacks are welcome in this repository: supporting multiple QRs would require new APIs, and it started as a port of java ZXing after all.

@jokester I see your point about wanting to preserve the original API, especially in the spirit of the original port. With that said, I wonder if it’s conceivable to have a new “extended” API that allows for this capability without affecting the original.

@thorgch I agree with you and I think we could have a extended API. Also, I can't remember by heart by I'm pretty sure some decoder in here does support multiple barcode reading from the same image, so that feature wouldn't be that hard to implement I think.

Edit.: I commented right above whats the decoder, it's PDF417 decoder.

@odahcam If you think it’s possible, then I’m serious about paying to bump this feature request to the head of the queue. We’re specifically after the ability the read multiple QR or Code128 codes. I see there are various platforms to sponsor this project, and I’d be happy to use any one of them if this project’s team has a preference. I’m also open to something more formal like a contract if this ends up being a non-trivial amount of work and you want a guarantee of payment for the work done. I also want to reiterate that we’d expect this work to remain opensource under an MIT license. If you, or one of the other contributors are interested, let me know and I’ll email directly to sort out the payment details.

read multiple QR or Code128 codes

I'm just not sure if we can do this fast, so it's delicate to accept payments to develop this specific stuff even if it would help the project a lot by enabling me to spend more hours here, but it stills complicated. Sorry.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lenny76 picture lenny76  Â·  10Comments

ismailjamiljauhari picture ismailjamiljauhari  Â·  6Comments

arthurmmedeiros picture arthurmmedeiros  Â·  3Comments

mpodlasin picture mpodlasin  Â·  12Comments

josephernest picture josephernest  Â·  8Comments