opencv源码是一个神奇的世界,如果想研究opencv的源码,就不能用编译好的库。因为那样调试看不到函数的实现。
在mac上编译opencv源码比较简单,但是也有个坑,所以在此记录下来。
- 下载opencv的源码,可以从github或者sourceforge下载。下载好后解压到opencv2.4.13文件夹。
- 进入解压之后的OpenCV文件夹,然后新建一个release的文件夹,并进入,执行以下命令。
cmake -G "Unix Makefiles" ..
make
sudo make install
按理编译通过就OK了,但是这里make的时候编译有错:error: “libswscale is necessary to build the newer OpenCV ffmpeg wrapper”
这是由于ffmpeg引起的。所以需要确保已经装了ffmpeg。如果没安装,可以通过brew install ffmpeg
安装,如果已经安装或者未知,可以通过brew info ffmpeg
check一下。
接下来需要修改…/modules/highgui/src/cap_ffmpeg_impl.hpp文件中的一个宏开关。修改如下:
//修改前
#ifdef WIN32
#define HAVE_FFMPEG_SWSCALE 1
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
#else
//修改后
#ifdef 1
#define HAVE_FFMPEG_SWSCALE 1
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
#else
修改后就可以make成功了。
编译成功后就可以在xcode中新建一个工程测试了,新建工程后添加/usr/local/include
和/usr/local/include
, 以及new一个group 把相关lib添加进去就可以运行调试代码了。