教導大家如何在Mac下安裝使用OpenCV, 包括使用編譯器,Xcode,和Eclipse的開發方法
系統環境:ML10.7.5
cmake版本:2.8.10
XCode版本:4.5.1
OpenCV版本:2.4.3
Eclipse版本:Juno Service Release 1
爲了方便剛剛接觸mac的朋友,我在這裏首先說明下opencv在mac下的形式。主要有兩種:1. OpenCV for Mac 2. OpenCV for IOS 其中IOS的版本是爲了讓你的opencv使用在iphone或者ipad項目中的,即是給編寫跑在IOS系統中的程序用的。而MAC的版本是給編寫跑在MAC系統中的程序用的,這點非常重要,大家一定要根據自己的需求,而下載對應的版本。現在和大家分享,希望有所幫助。
我們的目標是編寫在mac系統上可以運行的C++程序。
一、安裝OpenCV for MAC
- 首先下載opencv for mac安裝源文件,解壓縮
- 安裝cmake程序。下載cmake的dmg文件安裝即可。
- 通過終端進入存放解壓後的opencv文件夾,編譯安裝opencv,使用命令如下:
sudo cmake -G “Unix Makefiles”
sudo make -j8
sudo make install - 經過步驟3則OpenCV已經被Compile完成,並且相應的lib文件存放在“/usr/local/lib”文件夾,h文件存放在“/usr/local/include”。
至此,opencv for Mac 安裝完畢。
二、在MAC下使用OpenCV
- 使用終端編譯。新建DisplayImage.cpp文件,代碼如下
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
2 .新建CMakeLists.txt文件,代碼如下:
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
3 . 編譯兩個文件
cd <DisplayImage_directory>
cmake .
make
4 . 運行編譯好的結果
./DisplayImage lena.jpg
三、在XCode中使用OpenCV
1 . 創建一個空的command line工程。
2 . 在main.cpp中粘貼以下代碼:
//
// main.cpp
// Created by Jason Yank on 13-05-08.
// Copyright (c) 2013年 Jason Yank. All rights reserved.
//
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cvaux.hpp>
#include <fstream>
using namespace std;
#define BYTE unsigned char
int main(int argc, const char * argv[])
{
// insert code here...
#if 1
//get the image from the directed path
IplImage* img = cvLoadImage("/Users/jasonyank/1.jpg", 1);
//NSLog(img);
//create a window to display the image
cvNamedWindow("picture", 1);
//show the image in the window
cvShowImage("picture", img);
//wait for the user to hit a key
cvWaitKey(0);
//delete the image and window
cvReleaseImage(&img);
cvDestroyWindow("picture");
#endif
//return
return 0;
}
3 . 添加lib文件:右鍵點擊工程名,選擇“Add files to..”,在文件選擇對話框彈出來時輸入“/”,在彈出的路徑框中輸入:/usr/local/lib,全選該文件夾下的全部dylib文件,添加至工程。
4 . 添加lib文件查找支持: 點擊工程名文件,進入“Build Settings”選項卡,在“Library Search Paths”欄中輸入“/usr/local/lib”
5 . 添加頭文件:點擊工程名文件,進入“Build Settings”選項卡,在“Header Search Paths”欄中輸入:“/usr/local/include /usr/local/include/opencv”
6 . 編譯運行整個工程,運行成功~~
四、在Eclipse中使用OpenCV
1 . 按照正常的步驟,使用eclipse建立一個Mac C++工程,包含一個cpp文件,代碼如xcode中的代碼相同即可。
2 . 右擊工程名, 選擇“Properties”,在屬性配置頁中選擇,點擊C/C++ Build, 在下拉選項中選擇 Settings. 在右邊的選項卡中選擇 Tool Settings。
3 . 在GCC C++ Compiler選項列表中選擇Includes,在Include paths(-l)中添加安裝好的opencv的頭文件存放目錄:/usr/local/include/
4 . 在MacOS X C++Linker選項列表中選擇Library,在Library search path (-L)中添加安裝好的opencv Lib文件存放目錄:/usr/local/lib/
5 . 在MacOS X C++Linker選項列表中選擇Library, 在Libraries(-l) 中依次點擊“+”號,添加需要使用的Lib文件(通常情況下,使用前三個):
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
6 . 重新build all工程,大功告成~~*^_^*