美文网首页
在MacOS上安装OpenCV 3.4(c++)

在MacOS上安装OpenCV 3.4(c++)

作者: lacfo | 来源:发表于2018-01-28 16:49 被阅读0次

为了学习C++版本的opencv,今天我在电脑上安装opencv并且运行一个简单的打开图片并显示的程序。没想到过程相当的痛苦,所以把这个过程记录下来,以便自己以后再次配置可以省很多事。如果还有同学看到这篇文章后少走一些弯路,我就更开心了。

安装openCV

MacOS安装openCV有很多方法,比如通过Homebrew。我选择的方法是直接下载压缩包,然后编译。对于MacOS选择Unix版本的就可以。

以下假设解压缩之后文件夹的位置是,/Users/your_user_name/opencv/opencv-3.4.0. 我们需要通过cmake来build opencv。如果已经安装了homebrew,则可以直接通过以下命令来安装cmake。如果没有安装homebrew,可以在官网按照步骤安装。

安装cmake, brew install cmake

安装好cmake后,在/Users/your_user_name/opencv/opencv-3.4.0新建一个文件夹,假设名字叫build

进入文件夹build, cd build
利用cmake编译,cmake -G "Unix Makefiles" ..
完成上一步后,make -j8
之后,sudo make install

所有的opencv library,就在/Users/your_user_name/opencv/opencv-3.4.0/build/lib中了。

设置Xcode

如果没有安装Xcode,可以在app store中搜索,然后安装。在第一个链接中详细介绍了怎么安装Xcode。

进入Xcode,新建一个project,选择Command Line Tool

屏幕快照_2018-01-28_下午4_12_51.png

点击next, 输入项目名称,选择c++语言


language.png

设置Xcode,使得编译器能够找到opencv library。


xcode.png

通过OpenCV打开图片,并且显示出来

接下来我们通过opencv打开图片,并且显示。看似很简单,但是也有一个坑。
在刚建立的project中的main.cpp中,我们的code如下

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/videoio/videoio.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/core/core.hpp>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture cap(0);
    namedWindow("frame", cv::WINDOW_AUTOSIZE);
    while(true)
    {
        Mat frame;
        cap.read(frame);
        if(frame.empty())
        {
            cout << "No frame" << endl;
        }
        imshow("frame", frame);
    }
    return 0;
}

写下代码之后,还要注意把相应的opencv library放在project中,这些library就在/Users/your_user_name/opencv/opencv-3.4.0/build/lib中。右键项目名称,然后选择Add files to进行添加。

屏幕快照_2018-01-28_下午4_31_24.png

最后还有一个地方需要注意,就是读取图片的路径,一定要写成完整的路径,否则没有办法找到图片。我在这里耽搁了很长时间才解决。


image_path.png

这篇文章综合了很多文章和视频的内容,链接放在下面,在此向前人们表示感谢。

  1. 安装opencv的youtubu视频
  2. stackoverflow问题1
  3. stackoverflow问题2
  4. stackoverflow问题3

相关文章

网友评论

      本文标题:在MacOS上安装OpenCV 3.4(c++)

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