美文网首页
OpenCV:在iOS/MAC上集成OpenCV(一)

OpenCV:在iOS/MAC上集成OpenCV(一)

作者: 哦呵呵y | 来源:发表于2019-08-16 16:00 被阅读0次

    一、MAC上集成OpenCV

    1. 环境准备
    • 安装Homebrew
    • 安装CMake brew install cmake
    2. 下载OpenCV https://opencv.org/releases/
    • 下载iOS pack(framework)放到/usr/local/Frameworks
    • 下载Sources
    3. 构建OpenCV
    1. 进入OpenCV源码解压后的文件夹
    2. 执行命令
      • mkdir build
      • cd build
      • cmake -G "Unix Makefiles" ..
      • make (make -j6 #并行运行6个作业)
      • sudo make install
    3. 新建项目测试
    1. 新建Command Line Tools项目 选择C++语言
    2. 在项目build setting -> search path进行配置
      • Always search User paths : true
      • Framework search path: /usr/local/Frameworks(这个路径要对应下载的openCV.framework所在位置)
      • Header Search Paths :/usr/local/include
      • Library Search Paths : /usr/local/lib
    3. 在项目中新建opencv文件夹,将 /usr/local/lib中opencv相关动态库加入到项目中(要区分版本,可以用到哪个添加哪个)
    4. 测试运行
    #include <opencv2/core/core.hpp>
    #include <opencv2/imgcodecs.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <iostream>
    #include <string>
    
    using namespace cv;
    using namespace std;
    
    int main( int argc, char** argv ){
        string imageName("/Users/xxx/Desktop/image2.jpeg");
        Mat image;
        image = imread(imageName.c_str(), IMREAD_COLOR);
        if( image.empty() ){
            cout <<  "Could not open or find the image" << std::endl ;
            return -1;
        }
        namedWindow( "Display window", WINDOW_AUTOSIZE );
        imshow( "Display window", image );
        waitKey(0);
        
        return 0;
    }
    
    3. 错误解决

    如果报错Library not loaded xxx, 可能是因为版本不对导致
    例如Library not loaded: /usr/local/opt/x265/lib/libx265.165.dylib, 而本地实际版本为libx265.169.dylib
    则进入动态库所在目录,执行ln -s libx265.169.dylib libx265.165.dylib 建立链接

    4. 简便安装方式
    brew install opencv
    

    安装包在/Library/Caches/Homebrew,解压后的文件夹都在/usr/local/Cellar。
    暂时好像只有OpenCV OpenCV@2 OpenCV@3,官网最新正式版本已经到了4.x版本

    二、iOS上集成OpenCV

    iOS项目集成OpenCV,可以直接使用Cocoapods集成,现在已经更新4.1.0版本,也可以使用官网下载的opencv.framework来继承。
    注意事项:

    1. OpenCV相关的头文件必须在 #import "ViewController.h"之前导入,否则连接错误。
    2. OpenCV源码为C++,所以使用到的文件都需要将后缀名改为.mm

    相关文章

      网友评论

          本文标题:OpenCV:在iOS/MAC上集成OpenCV(一)

          本文链接:https://www.haomeiwen.com/subject/jiqqsctx.html