经过网络调研发现 opencv原有的扫码性能不是很好,了解到可以结合wechat 基于cnn模型的扫码模块。因为没有可以现成使用的dll或者so,所以源码进行编译
主要是供 java jna调用使用
资源以及地址如下👇
系统环境 | 资源地址 |
---|---|
windows | opencv-4.6.0.dll |
unix | opencv-4.6.0.so |
java | opencv-4.6.0.jar |
编译步骤
opencv主代码 git地址
opencv三方模块 git地址
wechat模型 git地址
- 拉取opencv主代码、opencv三方模块代码
- cmake指令 检查环境和生成make文件
查看静态库链接
ldconfig -v
linux编译基础依赖
centos
yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
ubuntu
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat-dev
注意使用ant
#安装ant
yum install ant
注意启用指定java构建
cmake -DOPENCV_ENABLE_MODULE=ON -DOPENCV_EXTRA_MODULES_PATH=/opt/opencv/opencv_contrib-4.6.0/modules -DCMAKE_BUILD_TYPE=Release -DLIBRARY_OUTPUT_NAME=opencv_java -DBUILD_SHARED_LIBS=ON -DBUILD_opencv_java=ON -DOPENCV_GENERATE_JAVA=ON -DBUILD_opencv_wechat_qrcode=ON /opt/opencv/opencv-4.6.0/ -G "Unix Makefiles";
cmake构建配置文件后会显示环境变量
、启用功能
以及本次编译的opencv模块
- make指令进行编译 生成 so/dll 动态链接库文件
#注意依赖库,如果不是同时包含在一个so库中,需要把依赖到的so库放置在库路径下
Q.E.D.