我目前的情况是,我需要一个扫描仪,可以处理读取QR代码,如下所示。

你可以立即明白为什么这会造成问题。由于“普通”QR代码通常被打印在白色背景上(或该背景的某些变化)以提供最大的对比度,这些“打印的”QR代码很少提供给任何人。我试着优化这些,以显示尽可能多的QR代码和背景之间的差异,但这真的不是在我的舵手。我已经找到了一些用于应用特定过滤器提取大纲的OpenCV引用,但恐怕结果还远远不够理想。

最后两幅图像很难用人眼识别,更不用说计算机视觉了。在理想的情况下,最后的图像应该是完全白色的,几乎完全黑色的QR代码。
关于扫描仪的实际实现,我已经尝试了下面列出的SDK,但是没有成功地从QR代码中得到响应。
简言之,我的问题是:
是否有某种类型的过滤,我可以添加,以使QR代码更可读性,或有其他替代使用过滤器。
发布于 2017-01-20 14:51:29
我个人会尝试以下步骤:
发布于 2017-01-20 15:05:02
在转换到亮度(或获取b&w中的图像)之后,您将需要强大的二进制化过滤器--我可以推荐在javaocr库:https://sourceforge.net/p/javaocr/source/ci/master/tree/core/src/main/java/net/sourceforge/javaocr/filter/SauvolaBinarisationFilter.java中实现的Sauvola二进制化。
(有一些android演示,展示了它在预览图像上的使用情况)
这种过滤器在噪音和不均匀的照明条件下真的工作得很好。而且它也相当快,尽管工作超过50x50窗口(实际上,窗口大小与此过滤器无关)。
https://stackoverflow.com/questions/41698062
复制相似问题