首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条码阅读器程序:条码识别方法

条码阅读器程序:条码识别方法
EN

Stack Overflow用户
提问于 2010-01-03 02:52:07
回答 2查看 4.6K关注 0票数 5

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

所以我尝试了一些方法,首先是二值化,但是当图像有阴影和强烈的光照差异时,很难制作出好的二值图像。实际上,自适应热应力取决于滑动窗口的大小,这对于大条形码来说可能不是很好。因此,即使我制作了一个很好的二进制图像,您能建议我找到条形码的查找器模式和条形码本身的方法吗?如果我们谈论QRCode,最简单的方法是找到图像的所有轮廓,并选择其中包含两个正方形轮廓的正方形轮廓。

另一种方法是扫描图像的每条水平线以找到正确的取景器模式,这取决于二进制图像的制作情况。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-13 00:35:30

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

基本上,它以大约1:1:3:1:1的模式查看整个图像中的黑-白-黑-白-黑。除非旋转角度接近45度、135度、225度或315度,并且代码被严重透视扭曲,否则此方法将找到一个查找器模式。然后,它通过几种方式进行交叉检查--垂直查看图像中的那个点,以确认它也发现了这样的模式。它还进行了一些检查,以排除假阳性,然后确定哪种模式是哪种模式。

票数 4
EN

Stack Overflow用户

发布于 2010-01-05 05:28:17

您还可以尝试使用更改速率控制的阈值滞后。这里是普通Threshold Hysteresis的链接。将第一个阈值设置为典型的白色值。将第二个阈值设置为小于角落中的最低白色值。

不同之处在于,您希望检查第一个和第二个阈值之间所有值的像素之间的差异。理想情况下,如果差异是正的,则正常操作。但是如果它是负的,你只想在差异很小的情况下使用阈值。

这将能够补偿照明变化,但将忽略背景和条形码之间的较大变化。最终结果是二值对象图像,而不是边缘图像。此外,也没有自适应窗口可供尝试和调整大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1992435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档