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());
}
复制代码

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

相关推荐
Jerryhut15 小时前
用 OpenCV 的 DNN 模块玩转图像分类
opencv·分类·dnn
管牛牛18 小时前
图像的几何变换
人工智能·opencv·计算机视觉
sali-tec19 小时前
C# 基于OpenCv的视觉工作流-章11-高斯滤波
图像处理·人工智能·opencv·算法·计算机视觉
hudawei99621 小时前
google.mlkit:face-detection和 opencv的人脸识别有什么区别
人工智能·opencv·计算机视觉·google·人脸识别·mlkit·face-detection
格林威21 小时前
多光源条件下图像一致性校正:消除阴影与高光干扰的 6 个核心策略,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·算法·计算机视觉·分类·视觉检测
乐园游梦记1 天前
工业视觉(尤其是 3D/2.5D 相机场景)中针对不同数据类型、精度、用途设计的保存格式
数码相机·opencv·3d·c#
Sagittarius_A*1 天前
图像滤波:手撕五大经典滤波(均值 / 高斯 / 中值 / 双边 / 导向)【计算机视觉】
图像处理·python·opencv·算法·计算机视觉·均值算法
格林威1 天前
工业零件表面粗糙度评估:非接触式测量的 7 项核心技术,附 OpenCV+Halcon 实战代码!
人工智能·深度学习·数码相机·opencv·机器学习·计算机视觉·视觉检测
saoys1 天前
Opencv 学习笔记:文字图像预处理(二值化 + 闭运算优化)
笔记·opencv·学习
saoys1 天前
Opencv 学习笔记:精准提取图像中的水平线 / 垂直线(形态学操作实战)
笔记·opencv·学习