Mac下安装并使用OpenCV

作者: 胡乱的瞎扯 | 来源:发表于2019-02-02 18:25 被阅读1次

    摘要:本文实现了用homebrew安装OpenCV,然后在terminal中用cmake编译一个简单的程序

    不是用homebrew安装的也可以看,我试图写了一些关键要素,应该可以依葫芦画瓢的自己编译成功

    环境

    macOS:10.14.1
    OpenCV:4.0.1
    cmake:3.12.2

    安装OpenCV

    在终端中输入
    brew install opencv

    安装完成之后的目录应该是/usr/local/Cellar/opencv

    目录结构大致如下:


    也是下面提到的cmake文件所在目录

    cpp和cmake文件编写

    我从官网上复制粘贴了一个最基础的程序,实现了打开指定位置图片并按q退出的功能

    注意不同版本的OpenCV有挺大的不同,比如OpenCV2和后面几个版本的库名称有很大区别,所以在include的时候要注意

    如果你发现最后找不到include的库,很有可能是OpenCV的版本问题,建议去官网找对应版本的例子

    #include <opencv2/core.hpp>
    #include <opencv2/imgcodecs.hpp>
    #include <opencv2/highgui.hpp>
    #include <iostream>
    #include <string>
    using namespace cv;
    using namespace std;
    int main( int argc, char** argv )
    {
        String imageName( "/Users/air/Desktop/WechatIMG15.jpeg" ); // 改成你想要的图片
        if( argc > 1)
        {
            imageName = argv[1];
        }
        Mat image;
        image = imread( imageName, IMREAD_COLOR ); // Read the file
        if( image.empty() )                      // Check for invalid input
        {
            cout <<  "Could not open or find the image" << std::endl ;
            return -1;
        }
        namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
        imshow( "Display window", image );                // Show our image inside it.
        waitKey(0); // Wait for a keystroke in the window
        return 0;
    }
    

    为了实现这个程序,我们用cmake来进行编译
    首先就是要在同级目录下写一个CMakeLists.txt的文件,内容如下

    project( s )
    set(OpenCV_DIR "/usr/local/Cellar/opencv/4.0.1/lib/cmake/opencv4")
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
    find_package( OpenCV REQUIRED )
    add_executable( s s.cpp )
    target_link_libraries( s ${OpenCV_LIBS} )
    

    注释:

    • s是我随便写的23333
    • 第一行project不是强制性的,最好加上
    • 第二行set很重要,因为在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。只要让CMake找到这个文件,这个文件就指定了Opencv的所有路径,因此设置OpenCV_DIR是为了包含OpenCVConfig.cmake的目录,因为我是用homebrew安装的,所以在我这里,目录就是/usr/local/Cellar/opencv/4.0.1/lib/cmake/opencv4
    • 所以!!如果你不是用homebrew安装的,只需要找到这个文件所在目录替换即可
    • set(OpenCV_DIR...)必须在find_package之前,因为本来的默认路径很可能不是你想要的那个
    • 第三行的set也很重要,因为该opencv版本需要c++11。如果是opencv2那就不需要这行了

    在终端中实现

    1. 进入存放上面两个文件的目录
      cd Desktop
    2. 编译
      cmake .
      make
    3. 你会发现在同级目录中出现了很多文件,为了好看,你可以在第二步前创建文件夹用来囊括所有过程文件
      mkdir build
      cd build
      cmake .. 注意这里是两个点,为了返回上层目录
      make

    如果没有报错,就可以产生一个可执行文件了

    相关文章

      网友评论

        本文标题:Mac下安装并使用OpenCV

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