opencv在MAC下的安装
版本信息
MAC版本:10.10.5
Xcode版本:7.2
openCV版本:2.4.13
安装步骤:
- 联网
- 安装brew,在终端输入指令
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
不知道指令以后会不会更改,先把brew的官网放这http://brew.sh/index_zh-cn.html
3.安装cmake,在终端里面接着输入(需要输入密码)
brew install cmake
值得注意的是有些强迫症的童鞋会在指令开头加了’sudo’,嗯,我这么用就报错了。
4.安装opencv
还是在终端里面,先把当前路径跳转到(也就是用’cd’指令)opencv的路径,然后再输入以下指令
>sudo cmake -G "Unix Makefiles"
>sudo make -j8
>sudo make install
这里一定要用’sudo’,这不是强迫症的问题,我第一次少了’sudo’结果文件没有复制到usr文件夹里面
这些都做好了之后,/usr/local/include下会生成opencv与opencv2子文件夹,里面包含了许多opencv的头文件。
/usr/local/lib下也会生成opencv的相关的库。
5.在Xcode的设置
如图,找到Search Path中找到Header Search Path 和 Library Search Path,加入文件路径。
在Header Search Path中加入以下路径:
/usr/local/include
/usr/local/include/opencv
在Library Search Path加入以下路径:
/usr/local/lib
确认C++ Standard Library 是否为libstdc++(一般不会出问题),
在工程中添加路径/usr/local/lib中需(所)要(有)的.dylib(文件太多了还是新建一个文件夹保存以下吧……),当然/usr是隐身的,访问该路径直接输入cmd+shift+g。
运行代码(网上代码比较多,为了避免代码小白不会更改文件路径直接找了一个即运行即可用的代码,也就是运行过后会显示摄像头中经过边缘处理的画面,小白切记点击esc来正常退出程序)
//代码出处:http://www.bubuko.com/infodetail-826748.html
// main.cpp
// Camera_Capture
//
// Created by zhoufan on 15/5/24.
// Copyright (c) 2015年 zhoufan. All rights reserved.
//
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
IplImage* doCanny(IplImage* image_input,
double lowThresh,
double highThresh,
double aperture)
{
if(image_input->nChannels != 1)
return (0);
IplImage* image_output = cvCreateImage(cvGetSize(image_input),
image_input->depth,
image_input->nChannels);
cvCanny(image_input,image_output,lowThresh,highThresh,aperture);
return(image_output);
}
int main(int argc, char* argv[])
{
cvNamedWindow("Camera" , CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY);
assert(capture != NULL);
IplImage *frame = 0;
frame = cvQueryFrame(capture);
IplImage *frame_edge = cvCreateImage(cvGetSize(frame),
IPL_DEPTH_8U,
1);
while(1)
{
frame = cvQueryFrame(capture);
if(!frame) break;
cvConvertImage(frame,frame_edge,0);
frame = cvCloneImage(frame_edge);
frame_edge = doCanny(frame_edge,70,90,3);
cvShowImage("Camera",frame_edge);
char c = cvWaitKey(15);
if(c == 27) break;
}
cvReleaseCapture(&capture);
cvReleaseImage( &frame_edge );
cvReleaseImage( &frame);
return (int)0;
}
参考资料:
1.http://blog.csdn.net/ramonyang/article/details/37603933
2.http://www.bubuko.com/infodetail-826748.html
本文来自博客园,作者:MrYu4,转载请注明原文链接:https://www.cnblogs.com/MrYU4/p/15778899.html