【OpenCV】在MacOS上源码编译OpenCV

这篇具有很好参考价值的文章主要介绍了【OpenCV】在MacOS上源码编译OpenCV。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言
在做视觉任务时,我们经常会用到开源视觉库OpenCV,OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。 最近在项目中,我遇到了在MacOS上使用OpenCV需求,目前OpenCV官网上并没有提供OpenCV现成的安装包,因此在此处我们需要自己进行编译,所以在此处我们将结合``opencv_4.8.0``、``opencv_contril_4.8.0``,演示如何源码编译并使用

1. 下载项目源码

  首先下载项目源码,这里我们下载的是4.8.0,大家可以根据自己的需求进行下载,不过要尽量保证opencvopencv_contril源码版本一致。通过下面代码我们进行源码下载:

wget https://github.com/opencv/opencv/archive/4.8.0.zip
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip

  下载完代码后,将代码文件解压到当前文件中,如下图所示:
【OpenCV】在MacOS上源码编译OpenCV

2. 创建CMake编译文件

  OpenCV支持CMake编译,所以此处需要安装CMake,安装方式此处不做讲解。输入一下指令,打开并创建编译文件夹:

cd opencv-4.8.0
mkdir build && cd build

  接下来输入CMake指令,进行CMake编译,此处需要注意三个路径:

  • CMAKE_INSTALL_PREFIX=<install path><install path>表示编译好的OpenCV安装路径,可以指定到系统路径,也可以是自定义路径,此处设置为:/Users/ygj/3lib/opencv_4.8.0/include/opencv4/opencv2,注意这个路径,后续编译C++项目时会用到。
  • OPENCV_EXTRA_MODULES_PATH=<model path><model path>表示扩展模块的路径,就是上文我们下载的opencv_contril_4.8.0文件,在此处设置为/Users/ygj/3lib/opencv_build/opencv_contrib-4.8.0/modules
  • PYTHON3_EXECUTABLE=<python path><python path>表示本计算机Python的安装路径,此处也可以不设置,主要就是设置要不要生成Python依赖库。如果设置了,需要开启BUILD_opencv_python2=ON或者BUILD_opencv_python3=ON,具体按照你的电脑中安装的Python版本决定。
    设定好上面三个路径后,就可以在终端输入以下指令,进行CMake编译:
cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 -DWITH_OPENJPEG=OFF -DWITH_IPP=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<install path> -D OPENCV_EXTRA_MODULES_PATH=<model path> -D PYTHON3_EXECUTABLE=<python path> -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=ON ..

【OpenCV】在MacOS上源码编译OpenCV

  编译完成后如下图所示,不过此处要注意一点,在编译时会下载相关的第三方库,要保证网络通畅,防止下载失败。
【OpenCV】在MacOS上源码编译OpenCV

3. 编译安装

  上一步完成CMake编译后,就可以进行make编译了,只需要输入一下指令即可,-j8表示用8个核心进行编译,具体设置可以根据你的电脑进行设置,数值越大编译越快。

make -j8

  编译完成后,如下图所示:

【OpenCV】在MacOS上源码编译OpenCV

  接下来就是进行安装,只需要一下指令就可:

make install

  安装完成后,会在你上文设置的安装路径下生成依赖文件,如下图所示:
【OpenCV】在MacOS上源码编译OpenCV

4. 案例测试

  首先创建一个新的C++文件main.cpp文件,在文件中添加以下代码:

#include "opencv2/opencv.hpp"

int main(){
    std::cout<<"hello opencv!"<<std::endl;
    cv::Mat image = cv::imread("image.jpg");
    if (!image.empty())
    {
        std::cout << "image is OK!" << std::endl;
    }
    std::cout << "图像的宽度是:" << image.rows << std::endl;
    std::cout << "图像的高度是:" <<image.cols << std::endl;
    std::cout << "图像的通道数是:" << image.channels() << std::endl;
    cv::Mat image1;
    cv::cvtColor(image,image1,cv::COLOR_RGB2GRAY);
    cv::imshow("image",image);
    cv::imshow("image1",image1);
    cv::waitKey(0);
    std::cout<<"hello opencv!"<<std::endl;
    return 0;
}

  这一段代码主要是读取本地图片文件,获取并输出图片的基本信息,然后使用窗口将图片展示出来。

  此处编译方式采用CMake编译方进行编译,定义的CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 3.28)
project(opencv)
set(OpenCV_DIR /Users/ygj/3lib/opencv_4.8.0/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV_DIR = ${OpenCV_DIR}")
message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
include_directories(
    ${OpenCV_INCLUDE_DIRS}
)
add_executable( main main.cpp )
target_link_libraries( main ${OpenCV_LIBS} )

  在CMakeLists文件中,我们通过find_package(OpenCV REQUIRED)查找本计算机安装的OpenCV依赖库,但是需要在之前指定OpenCV的安装路径。写完Cmake文件后,在命令行中输入cmake .进行运行,输出结果如下图所示:
【OpenCV】在MacOS上源码编译OpenCV

  可以看出,CMake已经成功找到了本计算机安装的OpenCV路径,并获取了项目编译所需要的所有信息。
如果CMake没有任何问题,接下来就进行项目编译,只需要输入make指令即可,输出如下所示:
【OpenCV】在MacOS上源码编译OpenCV

make之后,会在项目文件夹中生成一个main文件,接下来直接运行该文件,斌可以的到如下图所示的输出:

【OpenCV】在MacOS上源码编译OpenCV

5. 总结

  在本项目中,我们实现了在MacOS系统上源码编译OpenCV,并在VS Code上使用OpenCV做了项目测试,最后成功实现了在MacOS系统上使用我们源码编译OpenCV的链接库,进行了图片处理。文章来源地址https://www.toymoban.com/news/detail-774184.html

到了这里,关于【OpenCV】在MacOS上源码编译OpenCV的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT+opencv源码编译

    时间记录:2024/1/20 QT5.12.7+cmake3.22.0+opencv4.5.4 (1)下载opencv源码,然后安装,opencv的安装即对源码的解压过程,解压后的文件目录如下 (2)opencv安装解压后的目录介绍: build文件夹vs编译源码后的文件,QT项目使用vs套件编译的可以直接使用本文件夹下的文件 sources文件夹ope

    2024年01月21日
    浏览(37)
  • Python基于OpenCV的双目视觉深度图算法(源码&教程)

    对于双目视觉立体匹配算法,先验的视差范围估计是影响算法匹配效果和运行时间的重要因素。在双目视觉系统的实际应用中,匹配视图之间的视差范围通常随场景的变化而不断改变,因此需要对视图间的视差范围进行有效的自动估计。针对此问题,开发了一种双模相机,可

    2024年02月03日
    浏览(41)
  • Opencv 源码编译以及调用相关

    源码下载, 注意其中的 batch , 选择一致。 安装依赖 比较简单的编译选项 关于其中的 -j 选项说明 选定视频编解码框架编译到opencv中 安装gstreamer 安装ffmpeg 编译配置 https://github.com/opencv/opencv/issues/22132

    2024年02月11日
    浏览(41)
  • 【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

    目录 1. 环境准备 1.1 软件环境 1. 2 源码下载 2. CMake编译项目 2.1 创建cmake项目 2.2 设置编译配置 2.3 解决异常 2.3.1 文件下载异常 2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目 4. 项目测试 5. 总结   OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器

    2024年02月03日
    浏览(41)
  • Windows11+Opencv+Clion编译源码

    参考:https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件,开源码等所有工具的安装路径一定不要有中文和空格。 cmake过程会下载一些文件,如果是局域网的话可能下载不下来,可以事先下载好拷贝到相应目录。 OpenCV默认会编译很多功能,有些功能需要先自

    2024年02月14日
    浏览(41)
  • NVIDIA jetson编译opencv 源码 python版本

    安装 jetson-stats 查看GPU的利用率 sudo apt-get install python3-pip sudo -H pip3 install jetson-stats 运行 jtop 进行查看 opencv 编译python版本 编译命令 cmake -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.6.0 -D CMAKE_BUILD_TYPE=RELEASE -D WITH_OPENGL=ON  -D BUILD_TIFF=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_GTK_2_X=ON  -D WITH_QT=ON  -

    2024年01月21日
    浏览(43)
  • Ubuntu 20.04源码编译安装OpenCV 4.7.0

    目录 前言 1--下载OpenCV 4.7.0 2--编译安装OpenCV 4.7.0 3--测试 3-1--查看安装的版本 3-2--基于VSCode和CMake测试项目 4--报错解决(重点!) 4-1--OpenCV与FFmpeg不兼容 4-2--LIBTIFF报错 4-3--系统与Anaconda的库lib冲突 4-4--测试时CMake的find_package报错         建议先看第4节相关报错及解决方法,再

    2024年01月16日
    浏览(71)
  • 使用 Qt6-mingw 编译 OpenCV 源码

    Qt 6.6.0 win11 x86_64 网址: https://cmake.org/download/ 选择对应的版本下载 将 cmake.exe 所在的 bin 目录添加到环境变量中 网址: https://opencv.org/releases/ 选择对应的版本下载 Source资源包 解压 “opencv-4.9.0.zip”, 将其解压的 “opencv-4.9.0” 存放到指定路径 “Path” (例如在我的电脑上 “Path”

    2024年01月24日
    浏览(46)
  • C# &OpenCV 从零开发(0):前言

    由于我想换个机器视觉+运动控制的工作,我就开始了自学机器视觉方向的技术。但是Halcon毕竟是商业化的库,国内用盗版还是怕被告。所以期望使用OpenCV。 OpenCV目前已知的方法的有两个版本 Python:用起来挺简单的,就是Python的语言不适合管理,感觉以后必定会出现问题,不适

    2024年01月18日
    浏览(60)
  • 【opencv】【GPU】windows10下opencv4.8.0-cuda C++版本源码编译教程

    提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 OpenCV是一个开源的计算机视觉库,包含了核心模块和扩展模块,提供了基础的图像处理和计算机视觉算法,以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一,包含了一些较为

    2024年02月08日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包