OpenCV(一):集成

開這個系列文章,記錄本身在項目中使用OpenCV所走的步驟流程,方便之後再次使用.若是有不正確的地方,歡迎指正.html

 

OpenCV在其官網上,已經發布有iOS版的庫,可是隻有核心模塊的功能,擴展模塊(好比:人臉識別)的功能並無添加進去.若是隻是單純使用核心模塊的功能,那麼能夠直接去官網下載,或則用cocoapods集成(這個方法集成好像有問題了,推薦去官網下載,拖進項目.2017.3.28標記),這個是很方便,也沒什麼難點.
python

如今記錄的是,怎麼把擴展模塊的功能,也集成到opencv2.framework中,方便咱們集成到項目中.ios

首先,去github上下載OpenCV的核心模塊與擴展模塊,也就是打開網頁以後的opencv,opencv_contrib兩個項目都須要下載. 而後咱們須要下載一個CMake.關於這個是用來幹嗎的,請自行百度,我也不知道.最後還須要下載一個編譯過程須要下載的一個包 protobuf-cpp-3.1.0.tar.gz ,下載頁面已經提醒你放在哪裏了,具體我後面再說.git

到這,咱們前期工做已經作完了,接下來就是把兩個模塊整合在一塊兒了.首先把opencv項目放在一個文件夾中,路徑最好不要有中文,防止編譯出錯. 打開opencv_contrib項目中modules文件夾,複製裏面全部的文件夾,粘貼到opencv項目的modules文件夾中.固然,你也根據我的須要只複製你須要功能,具體能夠查看OpenCV的文檔介紹.完成以後,再把咱們下載的 protobuf-cpp-3.1.0.tar.gz 壓縮包放到opencv項目modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0 ,由於.download是隱藏文件夾,你能夠直接 Finder 右鍵前往文件夾,直接輸入路徑進去.github

如今就到編譯階段了.打開opencv項目的platforms找到你要的環境,點擊進去,查看readme.txt,裏面就有相關的終端命令.我是iOS開發,因此只嘗試了iOS的.app

python命令Mac是自帶的,能夠直接執行.而咱們要作的就是,把build_framework.py的路徑弄對. 你能夠在終端cd到iOS目錄下,而後執行 $ python build_framework.py ios  ,也能夠直接使用絕對路徑. 不過在執行,須要先執行一句 $ PATH=$PATH:/Applications/CMake.app/Contents/bin ,由於咱們是直接安裝CMake APP,終端沒有相關的環境,會出現ui

anil-Mac-2s-Mac-mini:opencv pws-mac-2$ python platforms/ios/build_framework.py ios Executing: ['cmake', '-GXcode', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_TOOLCHAIN_FILE=/Users/pws-mac-2/Desktop/opencv/platforms/ios/cmake/Toolchains/Toolchain-iPhoneOS_Xcode.cmake', '-DCMAKE_INSTALL_PREFIX=install', '-DENABLE_NEON=ON', '/Users/pws-mac-2/Desktop/opencv', '-DCMAKE_C_FLAGS=-fembed-bitcode', '-DCMAKE_CXX_FLAGS=-fembed-bitcode'] in /Users/pws-mac-2/Desktop/opencv/ios/build/armv7-iPhoneOS 

 的錯誤,這個我是在stackoverflow找到的解決方法.spa

弄好後,終端就開始執行命令了,這個時候iOS目錄下會生成一個iOS文件夾,打開進去裏面還有一個build.咱們就不用管了,等命令執行完成以後,在這個文件夾中就會有一個新的opencv2.framework,你集成到項目裏面,就能夠看到比官網下載的opencv2.framework多了擴展模塊了.而後就是添加相關的系統庫了.其中還會有兩個錯誤,報錯是NO 只要把NO修改爲 NO_EXPOSURE_COMPENSATOR 或 NO_EXPOSURE_COMPENSATOR =0 也行..net

接下來編譯項目應該是沒什麼問題了.使用過程當中 opencv.hpp 並無引入擴展模塊的頭文件,因此你要用到擴展模塊的功能,還須要本身引入擴展模塊的頭文件.code

 

 集成就這麼多了,之後遇到新的問題,再來修改.

相關文章
相關標籤/搜索