image-processing - 条码阅读器程序 : barcode Identification methods

标签 image-processing barcode barcode-scanner

我是图像处理的新手,我想识别图像中的二维码。
实际上有三个查找器模式,首先我需要找到它们。

所以我尝试了一些方法,首先是与二值化有关,但是当图像有阴影并且光照差异很大时,就很难做出好的二值化图像。
实际上自适应阈值取决于滑动窗口的大小,这可能不适用于大条码。因此,即使我制作了一个好的二进制图像,您能否建议我找到条形码的查找模式和条形码本身的方法。最简单的方法,如果我们谈论 QRCode,就是找到图像的所有轮廓并选择那些方形并在里面包含两个方形轮廓的轮廓。

另一种方法是扫描图像的每条水平线以找到正确的取景器图案,这取决于二值图像的制作程度。

所以我看到了解决这个问题的方法,但我想知道还有其他不同的方法可以找到条码的查找模式吗?我认为模式匹配在这里不好。您还可以建议一种不依赖于光照的好的二值化方法。我尝试了很多自适应阈值二值化方法,但它们都有一个共同的问题,如果图像包含一个大的黑色方块,那么二值图像将不会有一个完整的方块,而是一个在方块中间有一些白色部分的方块,这个是因为自适应阈值法中滑动窗口的大小不够大。

最佳答案

可以看看ZXing使用的方法:http://code.google.com/p/zxing/source/browse/trunk在 core/src/com/google/zxing/qrcode/Detector.java 下

基本上它以大约 1:1:3:1:1 的模式查看图像中的黑-白-黑-白-黑。除非旋转角度接近 45、135、225 或 315 度,并且除非代码有严重的透视失真,否则此方法将找到取景器图案。然后它会交叉检查几种方式——垂直查看图像中的那个点以​​确认它也找到了这样的模式。它还进行了一些检查以排除误报,然后确定哪种模式是哪种模式。

关于image-processing - 条码阅读器程序 : barcode Identification methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1992435/

相关文章:

Android ZXing图像处理

android - 如何更改扫描 Zbar 的区域?

ios - Xamarin 在 ios 上形成 zxing ZXingScannerView

c - 在 Code 128 条码中编码扩展 ASCII 字符

javascript - jQuery:监听来自键盘的自动扫描仪输入?

java - ZXING Barcode Scanner如何不能全屏只能半屏

android - 相机启动时屏幕停电

matlab - 在 MATLAB 中突出显示二进制图像中某些形状的边界

java - FFT 图像变换的输入和输出应该是什么?

python - 在无法访问相机的情况下删除鱼眼效果