Mac clion 环境下配置搭建OpenCV(源码编译版)

Mac clion 环境下配置搭建OpenCV(源码编译版)

前言

发现其它文章都是直接brew install opencv的,感觉这并不负责任,这能让其它程序员学到什么?

这么做编译、链接这个过程直接成了黑盒子。

所以我决定写这篇文章,将问题分析透彻。

一、资源准备

  • 下载opencv源码包,笔者这里版本是2.4.13.6(OpenCV官网

    在这里插入图片描述

    点击Releases链接,在列出的各版本中,找到自己想要的那个版本,点击Sources下载源码

    在这里插入图片描述

  • 下载安装cmake(CMake官网

    在这里插入图片描述

    点击Download链接

    在这里插入图片描述

    找到mac版进行下载,并安装

二、编译OpenCV源码,得到头文件和动态链接库

  • 使用cmake工具编译

    在这里插入图片描述

    选择编译器(这里用默认的就好,不像windows,有vs版和MinGW版)

    在这里插入图片描述

    让它跑,首次Configure完成后,控制台下只要没有error,(红色的warning无视即可)无脑再次点击Configure按钮

    在这里插入图片描述

    再次完成后,最后再根据条件再次确认下配置,记得把OpenGL的支持加上

    在这里插入图片描述

    最后点击Generate按钮生成makefile文件(有了这个文件就可以愉快的 make install 了)

  • 到你设置的编译输出目录下,用bash命令执行 make install 命令吧

  • 执行完后你发现你的/usr/local目录下多了include、lib两个目录,并且底下有opencv相关的一些东西,这些都是你以上作出的劳动成果

三、配置clion环境

  • 1.新建一个c++ 11的项目

  • 2.找到项目根路径下的CMakeLists.txt文件(怎么写?参照大神整理的CMakeList教程

    cmake_minimum_required(VERSION 3.17)
    project(OpenCVDemo)
    
    set(CMAKE_CXX_STANDARD 11)
    
    # 执行你额外需要包含的.h文件的目录 -- 可多个,每行都是一个
    include_directories(
            /usr/local/include
            /usr/local/include/opencv
            /usr/local/include/opencv2
    )
    
    # 执行你额外需要包含的.dylib、.a、.so等静态、动态库文件的目录 -- 可多个,每行都是一个
    link_directories(
            /usr/local/lib
    )
    
    # 设置主启动库
    add_executable(OpenCVDemo main.cpp)
    
    # 逐个添加你的库 链接到主启动库
    # 怎么来?
    # 在/usr/local/lib目录下执行命令 ls -lL | grep opencv (这个大L是剔除链接文件的,我们只要文件主体)
    # 得到的去头去尾后就是下面的目录了(.a、.dylib、.so等后缀去掉,lib开头去掉),为什么?linux、unix规定!
    target_link_libraries(
            OpenCVDemo # 这个是你的项目库,别忘了
            opencv_ts
            opencv_calib3d.2.4.13
            opencv_contrib.2.4.13
            opencv_core.2.4.13
            opencv_features2d.2.4.13
            opencv_flann.2.4.13
            opencv_gpu.2.4.13
            opencv_highgui.2.4.13
            opencv_imgproc.2.4.13
            opencv_legacy.2.4.13
            opencv_ml.2.4.13
            opencv_nonfree.2.4.13
            opencv_objdetect.2.4.13
            opencv_ocl.2.4.13
            opencv_photo.2.4.13
            opencv_stitching.2.4.13
            opencv_superres.2.4.13
            opencv_video.2.4.13
            opencv_videostab.2.4.13
    )
    
  • 3.写测试代码,编译执行

    #include <iostream>
    #include "opencv2/opencv.hpp"
    
    using namespace cv;
    
    int main() {
        // 构造一个视频对象,0代表从摄像头获取
        VideoCapture capture(0);
    
        while(1){
            // 创建空的mat结构
            Mat mat;
            // >> 是重载运算符函数,将帧从视频流中取出
            capture >> mat;
            // 显示 mat 到OpenCV创建的,名为"视频"的窗口中
            imshow("视频", mat);
            // 每帧30毫秒,试下效果,可自己微调
            cvWaitKey(30);
        }
    }
    
  • 4.看下效果,额。。。老程序员就不发自拍图了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值