opencv在MAC下的安装

版本信息

MAC版本:10.10.5
Xcode版本:7.2
openCV版本:2.4.13
安装步骤:

  1. 联网
  2. 安装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

posted @   MrYu4  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示