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