mac环境下编译Opencv4.0 以及在Processing中使用opencv4.0举例

Posted teamlet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac环境下编译Opencv4.0 以及在Processing中使用opencv4.0举例相关的知识,希望对你有一定的参考价值。

一、环境

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的例子写一下。

《完》

以上是关于mac环境下编译Opencv4.0 以及在Processing中使用opencv4.0举例的主要内容,如果未能解决你的问题,请参考以下文章

MacOS下编译Android6.0源代码

在mingw环境下编译assimp

在mingw环境下编译assimp

Mac OSX下编译安装PostgreSQL

MAC OS下编译apple跨平台的libevent库 (可延申到其它第三库)

02Mac下编译java代码