max*_*mus 5 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 度,并且除非代码严重透视扭曲,否则此方法将找到取景器图案。然后,它会通过几种方式进行交叉检查——垂直查看图像中的该点,以确认它也找到了这样的模式。它还进行了一些检查来排除误报,然后确定哪个模式是哪个模式。
归档时间: |
|
查看次数: |
4562 次 |
最近记录: |