自从今年流行病以来,我没有写过一篇文章。一方面,流行病导致办公室更加易碎,另一方面,最近有些懒惰。但仍必须继续工作。在这几天中,我已经优化了最近的项目。我已经整理了如何使用OpenCV和微信QR码引擎来实现QR码的识别。
微信打开了其两个维度的解码功能,并为OpenCV社区做出了贡献。它的开源Wechat_qrcode项目包含在OpenCV prospon Project中。从OpenCV版本4.5.2,可以直接使用。
此项目github地址:https://github.com/opencv/opencv_contrib/tree/master/modles/modules/wechat_qrcode
模型文件的地址:https://github.com/wechatcv/opencv_3rdparty
微信扫描引擎支持了长距离QR码检测,自动焦点定位,多代码检测标识和其他功能。这是基于CNN的QR码检测。
首先,定义一个algoqrcode.h
该标头文件定义了一些方法,包括加载模型,标识QR码,发行资源等以及检测器对象以识别QR码。
然后编写相应的源文件algoqrcode.cpp
在:
标识QR码实际上是调用调用检测器对象的destectAndDecode()方法。
最后,编写一个主()函数以测试是否可用:
执行结果,确定QR码内容:
在这一点上,QR码识别的封装基本上已经完成,可以将相应的算法软件包编译到上层平台。
最后,我们需要使用Java/kotlin在Windows平台上调用CV程序。因为该项目是智能设备的高级机器程序。因此,您还需要为JAVA/KOTLIN呼叫编写JNI程序,哪个呼叫将不再解释这个过程。
最后,CV程序和与JNI相关的代码最终被编译到DLL文件中以供呼叫机器程序,以达到最终需求。
实际上,上面的代码可用于各种平台,无论是移动,台式机端还是服务器。Wechat打开了非常快速的QR代码引擎,从而保存了我们的原始作品。
原始:juejin.cn/post/7079313321446506532