OpenCV學習系列(零) Mac下OpenCV + xcode環境搭建


OpenCV學習系列(零) Mac下OpenCV + xcode環境搭建


[-= 博客目錄 =-]


1-學習目標

1.1-本章介紹

因為不可抗力(╯﹏╰),最近去圖書館借了一本《OpenCV編程案例詳解》,准備學習OpenCV的使用,因為身患懶癌,所以還是想通過博客的方式來督促自己學習吧,以后這個系列每周必有一篇(flag大旗已立)……
這篇博客之所以命名為零,是因為這是用來介紹怎么樣搭建OpenCV的開發環境的。

返回目錄

1.2-實踐內容

  1. homebrew安裝
  2. 安裝CMake
  3. 源碼安裝OpenCV
  4. xcode配置與測試
  5. 基礎問題回答

返回目錄

1.3-相關說明

  • 我使用的是Mac環境,所以為了方便我通過xcode來學習OpenCV的使用

返回目錄

2-學習目標

2.1-homebrew安裝

這個網上很多嘛~
Homebrew - 安裝與使用

返回目錄

2.2-使用homebrew安裝CMake

安裝了homebrew之后相當於安裝了一個軟件管家(命令行版2333),直接通過brew命令就可以安裝大部分工具:

sudo brew install cmake //homebrew

默認的安裝路徑是:/usr/locat/Celler/
一般情況下,如果很久沒有使用homebrew,他會更新軟件包,所以請在網絡良好的情況下使用,不然會……超慢。
更新homebrew也可以手動:

brew update
brew upgrade

返回目錄

2.3-源碼安裝OpenCV

第一步先上官網下載源碼:https://opencv.org/releases.html
安裝可以參考官網上的教程:https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
第二步編譯源碼文件:

1. cd ~/opencv
2. mkdir build
3. cd build
4. cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
5. make
6. sudo make install

這里就簡單粗暴的上步驟吧,當然我建議最好看看官網,關於cmake參數的設置,確認你所喜歡的安裝方式,當然因為懶癌所以我就直接安裝官網上的來了,以后也好找……
安裝的整個過程在一個小時左右,應該大概也許因人而異吧~

返回目錄

2.4-xcode配置與測試

  1. 我們先create一個C++project,在工程右邊選中BuildSettings,右邊搜索框里輸入search,找到Search Paths設置項。
  2. 找到Header&Library Search Paths(頭文件搜索路徑)
    在里面輸入如下路徑
$(PROJECT_DIR)      //這個代表你當前工程路徑
/usr/local/include    //這是之前默認cmake后OpenCV頭文件放置路徑

在Library Search Paths里輸入

$(PROJECT_DIR)     //這個代表你當前工程路徑
/usr/local/lib         //這是之前默認cmake后OpenCV庫文件放置路徑

這里使用的是xcode Version 9.3 (9E145)版本,在Search Paths設置中會有debug和release兩個設置,弄成一樣的就好。
如何設置多路徑?只要雙擊框框,彈出一個詳細框,左下角有個加號可以增加Search Paths。為什么要加$(PROJECT_DIR) 因為如果把這個項目移動到另一台機器上,如果沒有這個,它可能會出現找不到庫或者頭文件(因為搜索路徑不同)。加了$(PROJECT_DIR) 之后你只需要把library放到項目路徑下就好,詳細可以看Xcode Build Search Paths設置.
關於xcode更加直觀的說明可以參考Mac平台上OpenCV開發環境搭建,以下是關於xcode項目的一段說明:
1.Open Xcode, choose New -> New Project -> Command Line Tool
2.Name it and select C++ for type
3.Click on your project from the left menu. Click the build settings tab from the top. Filter all. Scroll to Search Paths. Under header search paths, for debug and release, set the path to /usr/local/include. Under library search paths, set the path to $(PROJECT_DIR). Finally, check if C++ standard library is libstdc++ or not, if not, change it to this!
4.Click on your project from the left menu. File->New->New Group, Name the group OpenCV Frameworks.
5.Select the folder (group) you just labeled, OpenCV Frameworks in the left menu. Go to File -> add Files, Type /, which will allow you to manually go to a folder. Go to -> /usr/local/lib
6.Select both of these files, libopencv_core.dylib, libopencv_highgui.dylib, and click Add. (you may need to add other library files from this folder to run other code.)
7.You must include this line of code in the beginning of your main.cpp file:
#include <opencv2/opencv.hpp>
很淺顯的英文,大家應該都看得懂,為什么要放上來,主要是覺得原版比較看的比較直觀。

3. 添加lib文件
我們在Build Phases里找到Link Binary With Libraries,點擊+號

下來我們找文件

因為我們之前安裝的lib文件在/usr/local/lib/下,可視化的訪問默認是隱藏的,所以我們使用commend+shift+G來search它:

找到后我們添加一些常用庫:

搞定,可以開始測試了!
4. 測試
下面是網上找的測試代碼:

#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv) {
    Mat image;
    image = imread("/Users/mac/Pictures/loli.jpg", 1);
    namedWindow("Display Image", WINDOW_AUTOSIZE);
    imshow("Display Image", image);
    
    Mat gray;
    cvtColor(image, gray, COLOR_RGBA2GRAY);
    namedWindow("gray");
    imshow("gray", gray);
    
    waitKey(0);
    return 0;
}

大家注意string path = "/xxx/xxx/xxx.jpg";這里需要自己設置一下。下面是效果圖:

返回目錄

2.5-基礎問題回答

  1. 關於之前編譯源碼文件的第四步,如果不行可以參考官方解決辦法:
    Use
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
    without spaces after -D if the above example doesn't work.
  2. 在設置路徑的時候遇到了很多問題:
OpenCV(3.4.1) Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /Users/mac/Study/OpenCV/opencv-3.4.1/modules/highgui/src/window.cpp, line 356
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(3.4.1) /Users/mac/Study/OpenCV/opencv-3.4.1/modules/highgui/src/window.cpp:356: error: (-215) size.width>0 && size.height>0 in function imshow

后面花了很多時間,查了很多資料,最后發現……只是路徑輸錯了,Pictures輸錯成Picture搞半天才弄好,總之大家設置路徑的時候一定要是絕對路徑,而且要檢查清楚,下面舉幾個例子:

mac里面可以是這樣:/Users/mac/Pictures/loli.jpg
最好不要這樣:~/Pictures/loli.jpg
windows: D:\\Pictures

對於用到一些函數感興趣的可以參考:OpenCV從入門到放棄(四):HighGui組件細講

返回目錄

3-資料

  1. Mac OSX10.10上搭建OpenCV3.2.0開發環境
  2. 搭建Mac上的OpenCV開發環境
  3. opencv_tutorial_linux_install
  4. Homebrew - 安裝與使用
  5. cmake 那些事兒~
  6. cmake的一些基礎知識
  7. Mac平台上OpenCV開發環境搭建
  8. 關於homebrew使用時遇到的問題: Error: Could not symlink bin/gdb/usr/local/bin is not writable.
  9. Xcode Build Search Paths設置
  10. OpenCV從入門到放棄(四):HighGui組件細講

返回目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM