由于openCV的库文件在Linux、Unix端需要通过编译源码的方式得到,本文将简单介绍编译的教程和遇到的一些问题。
1. 下载opencv源码
下载opencv 代码,链接如下:https://opencv.org/releases/
2. 安装软件包管理工具Homebrew
打开终端Terminal,输入如下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
3. 安装编译工具CMake和Ant
打开终端Terminal,输入如下命令:
brew install cmake
brew install ant
cmake ant jdk8
jdk自行安装
4. 配置环境
打开终端Terminal,输入如下命令:
export JAVA_HOME="path of jdk on your computer"
export PATH=$JAVA_HOME/bin:$PATH
#################opencv dylib##############
export JAVA_AWT_INCLUDE_PATH=$JAVA_HOME
export JAVA_AWT_LIBRARY=$JAVA_HOME
export JAVA_INCLUDE_PATH=$JAVA_HOME/indclude
export JAVA_INCLUDE_PATH2=$JAVA_HOME/include/darwin
export JAVA_JVM_LIBRARY=$JAVA_HOME
###############################
JAVA_HOME需要自己修改。
5. 编译opencv
打开opencv下载的目录,并且解压压缩包。打开终端Terminal,执行如下命令:
cd opencv-3.4.2
根据Macbook的芯片进行编译。
Arm64:
mkdir build; cd build
cmake -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DWITH_IPP=OFF -DCMAKE_UILD_TYPE=RELEASE -DBUILD_opencv_python3=ON -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=OFF -DOPENCV_ENABLE_NONFREE=ON -DBUILD_EXAMPLES=ON -DBUILD_ZLIB=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ..
intel x86:
cmake -S . -B build
执行完成后会生成build目录。注意检查命令执行结果最后:
-- Java:
-- ant:
-- JNI:
-- Java wrappers:
-- Java tests:
上面的值如果没有说明环境变量没有配置成功。这时需要先删除build,再配置好环境(请参考4.配置环境),再执行以上指令构建build目录。
如果命令执行结果以上参数都有对应的JAVA_HOME,则表明构建成功。接着执行以下指令:
cd build/
make -j8
生成的两个文件目录:
opencv-3.4.2/build/bin/opencv-342.jar
opencv-3.4.2/build/lib/libopencv_java342.dylib
6. 引用opencv
在java代码里使用静态代码块直接引用:
static{
String opencvpath = "/Users/admin/Downloads/opencv-3.4.2-x86_64/build/lib/"; //The path and lib file depends on the path you install and compile opencv.
System.load(opencvpath+"libopencv_java342.dylib");
}
将libopencv_java342.dylib 放到java path:/Library/Java/Extensions/
7. Q&A
在编译opencv的过程中可能出现一些问题,请参考以下链接进行修改:
https://www.cnblogs.com/tony-yang-flutter/p/16099716.html
https://ask.csdn.net/questions/7743523
for 博客园:
be689a09-d919-4f73-a9ea-b171768fd29f