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.看下效果,额。。。老程序员就不发自拍图了。