系統環境:ML10.8.2php
XCode版本:4.5.2 html
OpenCV版本:2.4.3linux
Eclipse版本:Juno Service Release 1ios
在這裏特別提醒你們:iphone
opencv中文官方網站介紹的「opencv在Mac OS系統下的安裝方法」已經嚴重過時,我已經試過了,失敗,並且這個方法不是opencv for mac的,而是opencv for IOS的,但願你們不要再走彎路嘗試了。網站
http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=7524&start=0ui
http://blog.csdn.net/eminia/article/details/6635117spa
爲了方便剛剛接觸mac的朋友,我在這裏首先說明下opencv在mac下的形式。主要有兩種:1. OpenCV for Mac 2. OpenCV for IOS 其中IOS的版本是爲了讓你的opencv使用在iphone或者ipad項目中的,便是給編寫跑在IOS系統中的程序用的。而MAC的版本是給編寫跑在MAC系統中的程序用的,這點很是重要,你們必定要根據本身的需求,而下載對應的版本。筆者就是由於開始弄不清楚這兩個版本的區別而走了不少的彎路,如今和你們分享,但願有所幫助。.net
下面附上opencv官方網站的兩個版本的下載連接:code
目前的版本爲2.4.3 http://opencv.org/downloads.html
好了,下面進入正題,筆者首先介紹OpenCV for Mac,即編寫在mac系統上能夠運行的C++程序。
1、安裝OpenCV for MAC
1. 首先下載opencv for mac安裝源文件,解壓縮2. 安裝cmake程序。筆者使用的是Homebrew,在終端中輸入:「brew install cmake」,自動安裝cmake。3. 進入存放解壓後的opencv文件夾,新建一個空的文件夾release,進入該文件夾,編譯安裝opencv,使用命令以下:
mkdir release
cd release
cmake -G "Unix Makefiles" ..
make
sudo make install
4. 安裝好的lib文件存放在「/usr/local/lib」文件夾,h文件存放在「/usr/local/include」。
至此,opencv for Mac 安裝完畢,參考的網址以下:
http://tilomitra.com/opencv-on-mac-osx/
2、在MAC下使用OpenCV
1. 新建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
3、在XCode中使用OpenCV
1. 建立一個空的command line工程。
2. 在main.cpp中粘貼如下代碼:
//
// main.cpp
// FbyCharacterNormalization
//
// Created by Boyuan Feng on 13-1-24.
// Copyright (c) 2013年 Boyuan Feng. 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/boyuanfeng/aaa.bmp", 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文件,添加至工程。
5. 添加lib文件查找支持: 點擊工程名文件,進入「Build Settings」選項卡,在「Library Search Paths」欄中輸入「/usr/local/lib」
6. 添加頭文件:點擊工程名文件,進入「Build Settings」選項卡,在「Header Search Paths」欄中輸入:「/usr/local/include /usr/local/include/opencv」
7. 編譯運行整個工程,運行成功~~