`
haoningabc
  • 浏览: 1447750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在mac下编译opencv的helloworld

阅读更多
环境问题总是头疼
参考
http://www.cnblogs.com/sook/archive/2013/08/15/3259317.html
http://blog.csdn.net/china_lzn/article/details/8363660
http://www.devtang.com/blog/2012/10/27/use-opencv-in-ios/

预备工作:
1.下载Homebrew  在Terminal中输入:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
2.安装cmake       在Terminal中输入:
brew install cmake
开始安装opneCV
3.安装openCV     在Terminal中输入:
brew install opencv
如果出现 
Error: No available formula for opencv 
在输入brew install opencv前  先输入
brew tap homebrew/science
检查 Xcode->Preference->Downloads 下载Command Line Tools

之后会在
/usr/local/include下面找到opencv和opencv2的目录
在/usr/local/lib下面找到一堆libopencv的东西
设置xcode
xcode-->Build Settings
Library Search Paths   /usr/local/lib  这里有libopencv等一堆
User Header Search Paths   /usr/local/include

注意Build setting中的
Build Options 中有个 Compiler for c/c++/Objective-C
可能会用到brew install gcc

引入libopencv的包
在XCode中你的工程下建立一个NewGroup(方法:右键你的工程(左上,蓝色的那个)然后点击“New Group”)

然后,打开你的“Finder”(就是你mac下面那个条上,长的像人脸那个图标)然后此时,你同时按住  Shift  Command  g  这三个建, 然后会弹出来一个对话框,你在里输入“/usr/local”然后回车,它会转入local文件夹下,然后你按如下顺寻进入: Cellar-->opencv-->2.4.3-->lib  你现在已经进到了lib文件夹啦,你会看到一大堆以“dylib”结尾的文件,这些就是“动态库”,然后你找到以下三个动态库:

       [a]    libopencv_core.2.4.3.dylib 

       [b]    libopencv_highgui.2.4.3.dylib

       [c]    libopencv_ml.2.4.3.dylib

把它们选中后(按住command建就可以多选)点住,直接拖到你在XCode中刚建好的那个NewGroup文件夹里,然后XCode会弹出个对话框,注意,不要勾选 “Copy items into destination group's folder (if needed)”, 然后点击“Finish”

代码
//
//  main.cpp
//  testopencv
//
//  Created by xiao7 on 14-10-12.
//  Copyright (c) 2014年 killinux. All rights reserved.
//

#include <iostream>

#include <opencv/highgui.h>

#include <opencv/cv.h>

int main(int argc, char** argv)

{
    
    cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
    
    IplImage *img=cvLoadImage("/Users/xiao7/Desktop/aaa.jpg", CV_LOAD_IMAGE_ANYCOLOR); //一定注意:在mac下,这里要填写对你图片的路径哦!
    
    cvShowImage("image", img);
    
    cvWaitKey(0);
    
    cvReleaseImage(&img);
    
    cvDestroyWindow("image");
    
    return 0;
    
}




###########最重要的是三个库
target_link_libraries(test opencv_core)
target_link_libraries(test opencv_highgui)
target_link_libraries(test opencv_ml)

helloworld代码:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
int main(int argc, char** argv) {
    //create a gui window:
    namedWindow("Output",1);
    //initialize a 120X350 matrix of black pixels:
    Mat output = Mat::zeros( 120, 350, CV_8UC3 );
    //write text on the matrix:
    putText(output,
            "Hello World :)",
            cvPoint(15,70),
            FONT_HERSHEY_PLAIN,
            3,
            cvScalar(0,255,0),
            4);
    //display the image:
    imshow("Output", output);
    //wait for the user to press any key:
    waitKey(0);
    return 0;
}

如果是g++编译:
g++ -I/usr/local/Cellar/opencv@2/2.4.13.7_5/include -L /usr/local/Cellar/opencv@2/2.4.13.7_5/lib -lopencv_core  -lopencv_highgui -lopencv_ml  main.cpp

如果是cmake编译
CMakeLists.txt为
cmake_minimum_required(VERSION 2.8)
project( test )
set(OpenCV_DIR /usr/local/Cellar/opencv@2/2.4.13.7_5)
INCLUDE_DIRECTORIES("${OpenCV_DIR}/include")
LINK_DIRECTORIES("${OpenCV_DIR}/lib")

add_executable(test main.cpp)

target_link_libraries(test opencv_core)
target_link_libraries(test opencv_highgui)
target_link_libraries(test opencv_ml)

mkdir build
cd build
cmake ..
make
./test



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics