在MAC Xcode下安装OpenCV

版权声明:转载请注明 https://blog.csdn.net/weixin_41923961/article/details/82770642

在MAC Xcode下安装OpenCV

首先交代下安装环境MACOSX10.13,安装版本为OpenCV2.4.13,Xcode的版本为10.0。

一,安装Homebrew

Homebrew类似Ubuntu的apt-get,Fedora的yum,简单来说就是为了方便安装软件而生的。打开Homebrew官方网站http://brew.sh/index_zh-cn.html,找到安装homebrew的ruby命令:

ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"

二,利用homebrew安装cmake

输入brew update,然后输入brew upgrade。之后输入brew install cmake这样等待一会cmake就安装好了。

三,到OpenCV官网下载MAC/Linux版本的OpenCV 

OpenCV下载地址:http://opencv.org/downloads.html

目前最新版本是2.4.13,下载后解压,在终端执行下面代码:

cd <path-to-opencv-source>
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 
make
sudo make install

[完成之后在/usr/local/include目录下便有了opencv和opencv2两个目录,在/usr/local/lib目录下有很多的opencv相关的动态库,例如libopencv_core.dylib等等,还有几个其他的文件,它们都存放在/usr/local目录下]

[注1:如果不需要了,想要卸载OpenCV的话,可以回到release目录,执行sudomake uninstall,然后手动删除一些/usr/local下与OpenCV有关的目录和文件]

[注2:如果不想把OpenCV安装在默认的/usr/local/目录下的话,例如为了防止Homebrew中对opencv部分的报错,而又无法使用Homebrew正常安装opencv的情况下,可以考虑将opencv安装到其他的位置,修改CMAKE_INSTALL_PREFIX=/usr/local即可,但是在Eclipse中的项目中可能会出现问题,详情看后面]

其他参考内容:

Building OpenCV from Source Using CMake, Using the Command Line

Installing OpenCV

四,配置Xcode,编写OpenCV的测试用例

打开Xcode,新建一个command line工程: 

工程名字TestOpenCVDemo,注意语言选择C++。 

这样C++的HelloWorld就建好了,编译应该能正常运行。接下来先来配置xcode再来写代码。

最左边选中工程,然后右边选中Targets,再BuildSettings下,右边搜索框里输入search,很快就能找到SearchPaths设置项。在Header Search Paths里输入:/usr/local/include  在Library Search Paths里输入:/usr/local/lib

接着在Build Phases里找到Link BinaryWith Libraries,点击+号

选择add other,然后按下/键,输入lib的路径/usr/local/lib,点go:

然后就是选择OpenCV的库了,用哪个添加哪个,没必要都添加完。我们添加最基础的几个:

libopencv_core.2.4.13.dylib

libopencv_highgui.2.4.13.dylib 

libopencv_imgproc.2.4.13.dylib

libopencv_ml.2.4.13.dylib 

  

可以按下command实现多选。添加上面这四个最常用的就可以胜任本次的测试代码了。

在main.cpp里输入以下内容,实现显示一张照片及显示灰度化后的:

#include <unistd.h>

#include <iostream>

#include <opencv2/opencv.hpp>

using namespace std;

using namespace cv;


int main(int argc, const char * argv[]) {

// insert code here...

std::cout << "Test OpenCV!\n";

char buffer[256];

char* p_cwd = getcwd(buffer, sizeof(buffer));


string path ;

if (p_cwd) {

path = p_cwd;

}

else{

std::cout << "Path Error!\n";

return 0;

}

path += "/Test.jpg";

//string path = "/Volumes/Data/AutumnView.jpg";

Mat image = imread(path);

namedWindow("Test");

imshow("Test", image);


Mat gray;

cvtColor(image, gray, COLOR_RGBA2GRAY);

namedWindow("gray");

imshow("gray", gray);

waitKey(0);

return 0;

}

运行结果如下:

 

至此大功告成。

参考:

1.    http://blog.csdn.net/yanzi1225627/article/details/42113661

2.   https://segmentfault.com/a/1190000000711132

3.   http://wuzhaoxi1992511.blog.163.com/blog/static/18375811820132213544889/

猜你喜欢

转载自blog.csdn.net/weixin_41923961/article/details/82770642