因爲項目需要,我再次與OpenCV打交道
原本是一直在Python下使用OpenCV,這回需要在Java環境下了,說不得我又選擇重新搞
一句忠告放在前面,選最新版本!選最新版本!選最新版本!
我的各種環境:
macOS 10.13.5
Java 1.8.0
gcc 7.1.0
我原來是下載了OpenCV-3.0.0的源代碼,天知道我踩了多少坑。
網上教程也全是過時的或者胡亂轉載的(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)。比如這個說要把
#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
我不知道TA當時是怎麼搞出來的,就剛剛,我這麼改了,gcc報錯:ifdef
後面的1是個什麼玩意。我後來發現應該是#if 1
。TA當時能編譯通過,真是厲害。
還有比如,報錯'QTKit/QTKit.h' file not found
,有人給出的解決辦法是在未升級的mac系統中拷貝QTKit.framework從裏面提取QTKit文件夾,放置到opencv-2.4.13/modules/highgui/src
下再編譯就通過了。首先,可能他當時成功了,可現在是在OpenCV-3.0.0下,而且這哥們給了個CSDN的下載鏈接,結果廢了我5個積分以後,根本沒有他說的“QTKit文件夾”,真是可笑。後來我找了一個其他人的下載鏈接,花了3分,結果終於有“QTKit文件夾”了,我一看,就是把舊版系統的QTKit.framework裏面headers文件夾裏面的頭文件放到自己建的一個名叫QTKit的文件夾裏面去,然後就上傳了。我明擺這告訴你們,這招行不通,編譯還是不通過!
所以,我也不折騰舊版本了,直接目前最新版3.4.2得了。
我的步驟:
- 下載3.4.2源代碼zip包,解壓。
- 沒有homebrew裝一個,太方便了。
- ffmpeg這個我不確定是不是決勝因素,但是我使用
brew install ffmpeg --build-from-source
安裝的ffmpeg - ant這個也要裝,不然jar包生成不了。
brew install ant
- Doxygen和dot這個我也不確定是不是決勝因素,Doxygen我機子上本來就有,所以需要讀者自己查怎麼安裝,dot的話,使用homebrew:
brew install graphviz
,graphviz中包含dot - cmake和cmake-gui都可以通過homebrew安裝,命令行版本和GUI版本我個人認爲對於3.4.2沒區別,在最新版OpenCV下都可以成功配置
- 在解壓後的3.4.2中新建一個名爲build的文件夾,我原來看網上教程,建的文件夾叫release,後來我也不折騰了,就老老實實用官方OpenCV編譯建議的,就叫build
- 進入build文件夾,然後打開cmake-gui,第一個路徑選擇OpenCV源代碼文件夾,第二個選擇剛剛新建的build文件夾,然後點擊generate,彈出窗口的設置也就直接默認的設置(或者命令行在build文件夾中輸入
cmake -G "Unix Makefiles" ..
後面的兩個點也不能省) - cmake成功應該是這個樣子的輸出信息
...
...
Java:
ant: /usr/local/bin/ant (ver 1.10.4)
JNI: /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers
Java wrappers: YES
Java tests: YES
...
...
Install to: /usr/local
-----------------------------------------------------------------
Configuring done
Generating done
- 然後直接build文件夾中
make -j16
不墨跡 - make結束後直接
sudo make install
,簡單明瞭,一步到位
按照我這一套組合拳,很大概率OpenCV-3.4.2就直接成功安裝在你的mac上了。
peace out : )
(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
visitor tracker
EOF