Hello Logan,
D: This is a personal opinion and may not represent the collective
views of the community or the development and support team.
I've had this exact problem. ZXing is built around the shotgun
approach working with a video stream: large number of slightly
different images, no image is 100% scanned, but the amount makes up
for the low(ish) success rate on a single attempt. A mid-class phone
can handle 10, 15 or more attempts per second, and the user can barely
sense the delay. This however can make processing stand-alone still
images a bit of a challenge.
With the community's help and a few pointers I came up with this: in
order to achieve a higher success rate perform secondary scans on the
still image, but apply distortions to it. The main distortions that I
ended up using are:
* rotation (±90°, 180°)
* scale down (a few steps)
* blur (a few different kernels)
Contrary to the common sense down-scaling images (and reducing the
density that way) seems to increase the success rate to a point. The
blur seems to help with artefacts occurring due to
printing-and-scanning procedure.
For instance the last_fail.png scans fine with 50% downscaling and
blur 1 pixel.
The last_fail_2.png scans scans with 50% downscaling, blur 1 pixel
and 180° rotation.
Basically this process provides the slightly-different images that
would otherwise be a video input feed.
> --
> You received this message because you are subscribed to the Google Groups "zxing" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
zxing+un...@googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.