我正在尝试使用python从图像中检测pdf 417条形码(2D条形码)。
我将收到的身份证的图像,其中有一个条形码,但它可能并不总是直的。所以我正在寻找一种有效的方法来检测使用Python的pdf 417条形码。
我尝试了我能找到的所有可用方法(使用Python),例如,
pdf417decoder:要求图像精确地围绕条形码切割,如下图所示:
pyzbar:仅检测1D条形码
python-zxing和zxing:我没有检测到任何我尝试过的pdf 417条形码(大约10个不同的ID-不同的国家)
Barcode-detection:这是一种使用YOLO-V3检测条形码的DL方法,但再次(在尝试之后),它只能检测1D条形码...
是不是有什么方法我错过了?我对这个问题使用了错误的方法吗?
- 我正在考虑的可能解决方案:使用计算机视觉(一些过滤器和变换)来检测一个有黑色和白色圆点的盒子。类似于this。
谢谢你,谢谢
2条答案
按热度按时间slwdgvem1#
经过多次试验,我最终使用了OpenCV的template matching方法。你需要精确地选择你的模板图像,这将是你的算法的搜索参考。你需要输入一些灰度图像。然后,您需要选择结果高于某个阈值(对我来说为0.55)的框。然后应用NMS (non max suppression)过滤掉噪声框。
但请记住,有许多边缘情况要遇到。如果有人有兴趣看到完整的解决方案,请让我知道。
i86rm4rw2#
你需要pip安装zxing-cpp,然后运行上述代码扫描任何类型的条形码,你需要从你的摄像头。如果要输入静态图像,可以参考https://pypi.org/project/zxing-cpp/