一、环境
Mac OS Sierra 10.12.6
Processing 3.4 https://processing.org/download/
Opencv 4.0.0 https://opencv.org/releases.html
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ ant -version
Apache Ant(TM) version 1.10.5 compiled on July 10 2018
$ python --version
Python 3.6.6 :: Anaconda, Inc.
$ cmake -version
cmake version 3.13.2
如果没有安装,则
brew install cmake 或者 brew upgrade cmake
brew install ant
二、下载opencv4.0.0
选择 opencv4.0.0.zip 下载后解压为 opencv4.0.0 文件夹。
三、下载opencv_contrib-4.0.0
选择 opencv_contrib-4.0.0.zip 版本,与 opencv4.0.0 相对应。
https://github.com/opencv/opencv_contrib/releases
下载后,解压成opencv_contrib-4.0.0文件夹,将opencv_contrib-4.0.0 复制到opencv4.0.0 文件夹内。
四、修改配置文件
打开 opencv4.0.4/opencv_contrib-4.0.0/modules/optflow/CMakeLists.txt ,在 python 前面加上 java
修改前:
set(the_description "Optical Flow Algorithms")
ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_ximgproc opencv_imgcodecs opencv_flann WRAP python)
修改后:
set(the_description "Optical Flow Algorithms")
ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_ximgproc opencv_imgcodecs opencv_flann WRAP java python)
五、创建build环境
在opencv4.0.0文件夹下创建build文件夹,并进入build
六、执行配置
$cd opencv4.0.0/build
$ccmake ..
七、配置编译项
ccmake执行后,弹出配置菜单。
菜单操作说明 >>
A、按上下箭头选择每一项;
B、回车 On/Off 切换开关
C、配置完成后,按字母 c 检查配置;
主要关闭前两页的部分内容,我把前两页截图,供参考。
如果配置正常,则菜单会出现 g 的选项(见图三)。
如果没有出现 g 的选项,可能是因为环境不同,导致无法获得配置需要的环境。
这时候,需要尝试把一些 On 的配置项关闭。
(图一)配置内容第一页
(图二)配置内容第二页
(图三)配置完成
8、编译
配置完成后,编译
执行:
make -j5
9、编译完成
在 opencv4.0.0/build/bin 路径下,有 opencv-400.jar
在 opencv4.0.0/build/lib路径下,有 libopencv_java400.dylib 以及其他 .a 的文件
10、设置 Processing 使用 opencv4.0.0
打开 Processing,创建一个新项目,并保存为 helloOpencv4
11、在Processing 菜单选择 Sketch --> Show Sketch Folder
弹出的新文件夹窗口,就是当前项目所在路径。在当前文件夹内创建 code 目录,然后把opencv4.0.0/build/bin/opencv-400.jar和opencv4.0.0/build/lib/libopencv_java400.dylib 复制到code文件夹中。
12、在Processing中使用opencv4.0.0
测试代码如下:
import org.opencv.core.Core;
void setup(){
size(640,400);
println(Core.VERSION);
println(Core.NATIVE_LIBRARY_NAME);
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
void draw(){
background(100,100,100);
}
运行后,弹出的窗口上什么也没有!
控制窗口会显示 opencv的版本和 opencv_java400 的库文件名称。
如果有时间,把opencv4.0.0在Processing的例子写一下。
《完》