Mac M2安装OpenCV记录

OpenCV下载安装

Python下使用

建议直接通过 brew install opencv 安装最新版本 可以通过下面代码查看验证opencv版本,如果正常显示版本号就代表安装成功,可以正常使用了

python 复制代码
    import cv2
    print(cv2.__version__)
    
    #/PycharmProjects/med-alay/cv.py 
    #4.12.0

Java下使用

源码下载

在官网 opencv.org/releases/ 下载最新4.12.0的source源码 下载好的源码放到 ~/opencv文件夹下,解压文件,进入源码目录创建build文件夹

shell 复制代码
    cd opencv-4.12.0
    mkdir build && cd build

安装opencv_contrib

在build目录下安装opencv_contrib

shell 复制代码
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.12.0

cmake安装

ini 复制代码
在build目录下执行下面命令安装
这里注意 JAVA_HOME 环境变量需要设置好 我本地用的是jdk21
CMAKE_INSTALL_PREFIX 编译结果输出文件目录
在自己的jdk目录确认 JAVA_INCLUDE_PATH JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY目录下对应是否存在配置的文件
-D BUILD_opencv_java=ON 设置成ON,在后续java工程中调用需要最终编译的jar文件
-D OPENCV_EXTRA_MODULES_PATH 设置成opencv_contrib目录下的moudles文件目录
shell 复制代码
cmake \
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DWITH_OPENJPEG=OFF \
-DWITH_IPP=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
-D JAVA_INCLUDE_PATH=$JAVA_HOME/include \
-D JAVA_AWT_LIBRARY=$JAVA_HOME/lib/libawt.dylib \
-D JAVA_JVM_LIBRARY=$JAVA_HOME/lib/server/libjvm.dylib \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_java=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_ZLIB=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-4.12.0/build/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..

make

表示使用全部8个内核来运行make指令,可以按实际硬件情况调整,过程大概5~20分钟

shell 复制代码

make -j8

复制代码

安装

shell 复制代码

sudo make install

复制代码

Idea使用opencv配置

在上面编译安装成功后会在 /usr/local/opencv/share/java/opencv4 文件夹下找到 opencv-4120.jar 在Idea lib里下添加jar包或者将jar包上传的到本地私库直接通过maven引用 maven坐标

xml 复制代码
    <dependency>
        <groupId>org.opencv</groupId>
        <artifactId>opencv</artifactId>
        <version>4.12.0</version>
    </dependency>

在Main方法中验证

java 复制代码
arduino 复制代码
public static void main(String[] args) {
    System.load("/usr/local/opencv/share/java/opencv4/libopencv_java4120.dylib");
    Mat image = Imgcodecs.imread("~/images/test.png");
    System.out.println("width: " + image.width());
    System.out.println("height: " + image.height());
}
复制代码

如果能正常输出宽高则正常安装调试成功

相关推荐
兵慌码乱7 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
梦想三三11 天前
OpenCV银行卡数字识别项目(图像预处理与字符分割)
人工智能·opencv·计算机视觉
武子康12 天前
调查研究-180 roboflow/supervision:计算机视觉工程里的“胶水层“,为什么值得关注?
人工智能·opencv·计算机视觉·chatgpt·llm·向量化
m沐沐12 天前
【计算机视觉】OpenCV 模板匹配银行卡数字识别---下
人工智能·python·opencv·计算机视觉·pycharm·numpy
fie888912 天前
SSR / MSR 图像增强
人工智能·opencv·计算机视觉
sali-tec12 天前
C# 基于OpenCv的视觉工作流-章85-包胶不良检测
图像处理·人工智能·opencv·算法·计算机视觉
FL162386312912 天前
[cmake]基于C++使用纯opencv部署ppocrv5v6的onnx模型
开发语言·c++·opencv
2401_8856651912 天前
基于OpenCV的模板匹配OCR实战:银行卡与身份证数字识别完整教程
人工智能·python·opencv·计算机视觉·ocr
winfredzhang13 天前
用 MediaPipe 手势数字识别一键打开下载夹里的图片(Python + OpenCV 实战)
人工智能·python·opencv·google·mediapipe
sali-tec14 天前
C# 基于OpenCv的视觉工作流-章84-包胶有无检测
图像处理·人工智能·opencv·算法·计算机视觉