我目前处于需要扫描仪才能处理读取QR码的情况,如下所示。
您可以立即了解这会导致问题的原因。正常' QR码通常在白色背景上打印黑色(或其一些变体),以提供最大的对比度,这些'打印' QR码几乎没有提供。我尝试优化它们以尽可能地显示QR码和背景之间的差异,但这真的不在我的驾驶室中。我发现了一些OpenCV引用来应用某些过滤器来提取轮廓,但我担心结果会有很多不足之处。
人眼很难辨认最后两幅图像,更不用说计算机视觉了。在理想的情况下,最后的图像应该是完全白色的,具有几乎完全黑色的QR码。
关于扫描仪的实际实施,我已经尝试过下面列出的SDK,但没有成功获得QR码的响应。
简而言之,我的问题是:
我是否可以添加一些类型的过滤,以使QR码更具可读性,或者是否有其他替代方法可以使用过滤器。
答案 0 :(得分:0)
答案 1 :(得分:0)
转换为亮度(或获取b& w中的图像)后,您将需要强大的二值化过滤器 - 我可以推荐在javaocr库中实现的Sauvola binarisation: https://sourceforge.net/p/javaocr/source/ci/master/tree/core/src/main/java/net/sourceforge/javaocr/filter/SauvolaBinarisationFilter.java
(有安卓演示,展示其在预览图像中的用法)
此滤镜在嘈杂和不均匀的照明条件下工作得非常好。尽管工作时间超过50x50(实际上,窗口大小对于此过滤器无关紧要),它的速度也相当快