您的位置:首页 > 运维架构

Mac平台下Opencv开发环境搭建

2017-02-04 08:59 169 查看
OpenCV(Open Source Computer Vision Library),是一个开源的跨平台的计算机视觉库,它实现了图像处理和计算机视觉领域的很多通用算法,可以在多种计算机平台上运行,支持C++、C#、Python等语言,也提供了Ruby、Matlab等语言的接口。OpenCV是基于BSD许可证发布的,因此它可以免费应用于科研或商业领域。
  可以在这个地址了解更多以及下载OpenCV安装包:http://opencv.org, 其GitHub仓库地址为:https://github.com/opencv/opencv,那里有主仓库,拓展模块仓库和实验测试仓库,大家可以看上面的readme文件和代码来进行学习。

  因为我使用的是Mac电脑,懒得每次都要打开windows虚拟机使用Visual Studio编程,所以,决定在os x系统使用xcode来进行编译运行,下面介绍一下整个流程步骤。

  1. 安装

    在OpenCV官网下载的安装包适用于Linux/Mac,因此需要使用CMake工具来进行编译安装,尝试了几次,都在最后的链接那里失败了,在StackOverFlow查了下才发现,目前opencv只支持使用xcode6版本的编译链接器,我使用的是xcode7的,为了避免不必要地麻烦,就不采取编译安装方式了,去homebrew搜索一下,可以下载:

    


    现在执行"brew install opencv",等待即可安装完成,安装后路径是:/usr/local/opt/opencv3,我们可以设置一个OPENCV3_HOME环境变量,方便以后快速打开这个文件夹。该文件夹下有opencv的核心和扩展模块,目录结构如下:

    


    在lib目录下是opencv的库,在include目录下包含了两个子目录:opencv和opencv2,opencv里面包含了opencv1.x的核心头文件,opencv2安装模块功能组织,包括核心模块、图像处理模块、2D功能模块、高层GUI图像用户界面模块、机器学习模块等。

    注意,这里安装的是3.1.0版本的OpenCV,在官网可以看到,这个版本只支持64位编译器,如果在windows平台开发,建议选择现在还很常用的2.4.9版本,随着64位机基本普及,使用3.0版本更方便,不用再包含一堆的lib了,只要几个就够了。

    2. 环境配置

    开发平台IDE的环境大同小异,基本都是选择编程语言后就确定了编译器,然后是头文件路径的设定和库文件路径的设定让编译器能找到就行,然后就可以进行编译链接成最终的可执行文件了,按照这个思想,就不难处理问题了。

    2.1 新建xcode项目

      一般教程都会新建command line形式的项目,我不太喜欢这样的单个功能单个项目的形式,这样学下来就很多项目了,也麻烦,毕竟演示给别人看的时候,用gui软件形式比命令行软件形式更好看吧,这里新建工程就使用cocoa application形式吧。

打开XCode,新建工程,选择macOS模式,点击"cocoa application",下一步,输入工程名和语言,这里选择object-c,下一步,选择工程存放路径,点击"done"即可。

                 


2.2 配置工程头文件和库文件搜索路径,如下图顺序所示:  



在Library Search Paths记得要加上“$(PROJECT_DIR)”,这样在工程里添加的库框架也能搜索到,另外,因为OpenCV使用C/C++编写的,还需要引入C++动态链接库:

    在Build Phase的Link Binary With Libraries下,添加时搜索:"libstdc++",选中后点击"Add"即可:



最后,再添加对opencv库的引用,添加完成后如下图所示:



到这里,开发环境就配置完成了,在visual studio也差不多,都是配置编译时搜索头文件和库文件的路径,这里就不重复了。

    3. 测试opencv功能

    这里使用这个工程,主要是为了测试opencv的功能函数,把公共的功能提取出来,然后方便以后移植到android和ios平台下,所有,工程目录组织如下:



在imgprocess目录下是通用的图像处理函数,images目录是默认实例图片,其他文件就是cocoa编程的文件了,重点是imgprocess目录的类文件。

    我们再Main.storyboard里搭建大概的用户界面程序,如下:



ImageView和Button的IBoutlet和IBAction关联和iOS开发一样,这里就不多说了。

    编写图像处理头文件,如下:



这里特别要注意圈住的地方,需要加上才能编译连接通过。

    这里声明了一些图像处理函数,现在来看看cpp文件的实现:



图像处理部分函数准备好了,现在来验证一下,这里看看灰度变化怎么样:

     函数如下:



执行结果:



功能没问题~~

    接下去就是其他处理函数的编写和测试了,测试完成后,基本很小的修改就可以移植到android和ios平台了。

    在打开照片文件选择图片那里,代码如下:



好了,在mac平台搭建opencv开发环境到此结束,后面不断完善先,有时间再补充这部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: