经过网络调研发现 opencv原有的扫码性能不是很好,了解到可以结合wechat 基于cnn模型的扫码模块。因为没有可以现成使用的dll或者so,所以源码进行编译
主要是供 java jna调用使用

资源以及地址如下👇

系统环境资源地址
windowsopencv-4.6.0.dll
unixopencv-4.6.0.so
javaopencv-4.6.0.jar

编译步骤

opencv主代码 git地址
opencv三方模块 git地址
wechat模型 git地址

  1. 拉取opencv主代码、opencv三方模块代码
  2. 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模块

  1. make指令进行编译 生成 so/dll 动态链接库文件
#注意依赖库,如果不是同时包含在一个so库中,需要把依赖到的so库放置在库路径下

Q.E.D.


每一个平凡的日常都是连续的奇迹