Mac上編譯opencv源碼

opencv源碼是一個神奇的世界,如果想研究opencv的源碼,就不能用編譯好的庫。因爲那樣調試看不到函數的實現。

在mac上編譯opencv源碼比較簡單,但是也有個坑,所以在此記錄下來。

  1. 下載opencv的源碼,可以從github或者sourceforge下載。下載好後解壓到opencv2.4.13文件夾。
  2. 進入解壓之後的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添加進去就可以運行調試代碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章