• MAC设备(M1)环境下编译安装openCV for Java


    最近发现一个需求,可以用openCV来实现,碰巧又新买了mac笔记本,就打算利用业余时间安装下openCV。这里将主要步骤记录下,希望能帮助有需要的人。

    1、准备编译环境

    #查询编译opencv相关依赖
    brew info opencv
    
    • 1
    • 2

    查询结果如下图所示:
    在这里插入图片描述对于没有打✅的,通过如下命令进行安装:

    #例如eigen,具体视情况而定
    brew install eigen
    
    • 1
    • 2

    2、在线下载opencv源码

    #安装wget
    brew install wget
    wget -O opencv.zip https://github.com/opencv/opencv/archive/4.8.0.zip
    #解压缩
    unzip opencv.zip
    wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.8.0.zip
    unzip opencv_contrib.zip
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如果文件已存在,通过如下命令删除:

    rm -r -f /XXX/*
    
    • 1

    3、准备编译安装

    #进入opencv-4.8.0目录下
    cd opencv-4.8.0
    #创建build文件夹
    mkdir build && cd build
    #创建run.sh脚本
    vim run.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    复制黏贴以下指令至run.sh中,这里要特别说明一下,我安装的jdk是:zulu8.62.0.19-ca-jdk8.0.332-macosx_aarch64.dmg,对应jdk路径需要根据实际情况进行调整,直接复制可能执行报错

    arch -arm64 cmake \
    -DCMAKE_SYSTEM_PROCESSOR=arm64 \
    -DCMAKE_OSX_ARCHITECTURES=arm64 \
    -DOPENCV_JAVA_TARGET_VERSION=1.8 \
    -DWITH_OPENJPEG=OFF \
    -DWITH_IPP=OFF \
    -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/usr/local/opencv \
    -DJAVA_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/include \
    -DJAVA_AWT_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/include \
    -DJAVA_INCLUDE_PATH2=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/include/darwin \
    -DBUILD_opencv_python2=OFF \
    -DBUILD_opencv_java=ON \
    -DINSTALL_PYTHON_EXAMPLES=OFF \
    -DINSTALL_C_EXAMPLES=OFF \
    -DBUILD_ZLIB=OFF \
    -DOPENCV_ENABLE_NONFREE=ON \
    -DOPENCV_EXTRA_MODULES_PATH=/Users/matt/opencv_contrib-4.8.0/modules \
    -DBUILD_EXAMPLES=ON ..
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4、编译安装

    #执行run.sh
    bash run.sh
    #开始编译
    sudo arch -arm64  make -j8
    #开始安装
    sudo arch -arm64 make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    完成之后,会在以下两个路径下出现编译结果,两个地方生成的结果都可以使用:

    #前面在run..sh中设置的build路径
    opencv-4.8.0/build/bin/opencv-480.jar
    opencv-4.8.0/build/lib/libopencv_java480.dylib
    #安装路径
    /usr/local/opencv/share/java/opencv4/libopencv_java480.dylib
    /usr/local/opencv/share/java/opencv4/opencv-480.jar 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5、开始使用openCV

    首先将上一步生成的动态库放到如下路径中

    /Library/Java/Extensions/
    
    • 1

    如下图所示:
    在这里插入图片描述然后将生成的jar包引入到项目中,我这里是直接加载到项目下的,然后引入到工程中,如下图所示:
    在这里插入图片描述

    6、应用结果

    启动下图所示测试类:
    在这里插入图片描述查看应用效果(去除照片阴影背景,方便直接打印),如下图所示:
    在这里插入图片描述

  • 相关阅读:
    记录将excel表无变形的弄进word里面来
    EN 12467纤维水泥平板产品—CE认证
    mysql协议
    2023/9/6 -- C++/QT
    JavaSE——选择排序算法、冒泡排序法、二分查找法
    Android R 11.x quickstep 手势导航架构和详细实现
    利用MobaXterm连接服务器的全程配置
    智云通CRM:客户说“我们已经有供应商了”,我们该如何回应?
    2023-11-08:用go语言,字符串哈希原理和实现 比如p = 233, 也就是课上说的选择的质数进制 “ 3 1 2 5 6 ...“ 0 1 2 3 4 hash[0] = 3 * p的0
    Redis bigkey管理
  • 原文地址:https://blog.csdn.net/Mattscl/article/details/134259677