在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)
2016-06-24 17:31
363 查看
笔者属于Mac小白,最近刚入手一台macbook air,一直没有时间搭建编程环境,这两天终于挤出时间开始使用Mac系统。目前的编程工具主要为eclipse以及xcode,笔者首先选择了使用xcode,由于本人长期使用C++从事图像处理方面的工作,所以安装opencv就成了编程开始前的第一步。
系统环境:ML10.8.2
XCode版本:4.5.2
OpenCV版本:2.4.3
Eclipse版本:Juno Service Release 1
在这里特别提醒大家:
opencv中文官方网站介绍的“opencv在Mac OS系统下的安装方法”已经严重过期,我已经试过了,失败,而且这个方法不是opencv for mac的,而是opencv for IOS的,希望大家不要再走弯路尝试了。
http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=7524&start=0
http://blog.csdn.net/eminia/article/details/6635117
为了方便刚刚接触mac的朋友,我在这里首先说明下opencv在mac下的形式。主要有两种:1. OpenCV for Mac 2. OpenCV for IOS 其中IOS的版本是为了让你的opencv使用在iphone或者ipad项目中的,即是给编写跑在IOS系统中的程序用的。而MAC的版本是给编写跑在MAC系统中的程序用的,这点非常重要,大家一定要根据自己的需求,而下载对应的版本。笔者就是因为开始弄不清楚这两个版本的区别而走了很多的弯路,现在和大家分享,希望有所帮助。
下面附上opencv官方网站的两个版本的下载链接:
目前的版本为2.4.3 http://opencv.org/downloads.html
好了,下面进入正题,笔者首先介绍OpenCV for Mac,即编写在mac系统上可以运行的C++程序。
一、安装OpenCV for MAC
1. 首先下载opencv for mac安装源文件,解压缩2. 安装cmake程序。笔者使用的是Homebrew,在终端中输入:“brew install cmake”,自动安装cmake。3.
进入存放解压后的opencv文件夹,新建一个空的文件夹release,进入该文件夹,编译安装opencv,使用命令如下:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0 -G "Unix Makefiles" ..
[align=left] make[/align]
sudo make install
4. 安装好的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”。
至此,opencv for Mac 安装完毕,参考的网址如下:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation
http://tilomitra.com/opencv-on-mac-osx/
二、在MAC下使用OpenCV
1. 新建DisplayImage.cpp文件,代码如下
#include <cv.h>
#include <highgui.h>
[align=left]using namespace cv;[/align]
[align=left]int main( int argc, char** argv )[/align]
[align=left]{[/align]
[align=left] Mat image;[/align]
[align=left] image = imread( argv[1], 1 );[/align]
[align=left] [/align]
[align=left] if( argc != 2 || !image.data )[/align]
[align=left] {[/align]
printf( "No image data \n" );
[align=left] return -1;[/align]
[align=left] }[/align]
[align=left] [/align]
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
[align=left] [/align]
[align=left] waitKey(0);[/align]
[align=left] [/align]
[align=left] return 0;[/align]
}
2. 新建CMakeLists.txt文件,代码如下:
[align=left] project( DisplayImage )[/align]
[align=left] find_package( OpenCV REQUIRED )[/align]
[align=left] add_executable( DisplayImage DisplayImage )[/align]
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
3. 编译两个文件 cd <DisplayImage_directory>
cmake .
make
4. 运行编译好的结果
./DisplayImage lena.jpg
三、在XCode中使用OpenCV
1. 创建一个空的command line工程。
2. 在main.cpp中粘贴以下代码:
[align=left]//[/align]
[align=left]// main.cpp[/align]
// FbyCharacterNormalization
[align=left]//[/align]
// Created by Boyuan Feng on 13-1-24.
// Copyright (c) 2013年 Boyuan Feng. All rights reserved.
[align=left]//[/align]
[align=left] [/align]
[align=left]#include <iostream>[/align]
[align=left]#include <opencv2/opencv.hpp>[/align]
[align=left]#include <opencv2/highgui/highgui.hpp>[/align]
[align=left]#include <opencv/cvaux.hpp>[/align]
[align=left]#include <fstream>[/align]
[align=left]using namespace std;[/align]
[align=left] [/align]
[align=left]#define BYTE unsigned char[/align]
[align=left] [/align]
int main(int argc, const char * argv[])
[align=left]{[/align]
[align=left] // insert code here...[/align]
[align=left]#if 1[/align]
[align=left] //get the image from the directed path[/align]
[align=left] IplImage* img = cvLoadImage("/Users/boyuanfeng/aaa.bmp", 1);[/align]
[align=left] //NSLog(img);[/align]
[align=left] //create a window to display the image[/align]
[align=left] cvNamedWindow("picture", 1);[/align]
[align=left] //show the image in the window[/align]
[align=left] cvShowImage("picture", img);[/align]
[align=left] //wait for the user to hit a key[/align]
[align=left] cvWaitKey(0);[/align]
[align=left] //delete the image and window[/align]
[align=left] cvReleaseImage(&img);[/align]
[align=left] cvDestroyWindow("picture");[/align]
[align=left]#endif[/align]
[align=left] //return[/align]
[align=left] return 0;[/align]
[align=left]}[/align]
[align=left] [/align]
3. 添加lib文件:右键点击工程名,选择“Add files to..”,在文件选择对话框弹出来时输入“/”,在弹出的路径框中输入:/usr/local/lib,全选该文件夹下的全部dylib文件,添加至工程。
5. 添加lib文件查找支持: 点击工程名文件,进入“Build Settings”选项卡,在“Library Search Paths”栏中输入“/usr/local/lib”
6. 添加头文件:点击工程名文件,进入“Build Settings”选项卡,在“Header Search Paths”栏中输入:“/usr/local/include /usr/local/include/opencv”
7. 编译运行整个工程,运行成功~~
四、在Eclipse中使用OpenCV
1. 按照正常的步骤,使用eclipse建立一个Mac C++工程,包含一个cpp文件,代码如xcode中的代码相同即可。
2. 右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings。
3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件存放目录:/usr/local/include/
4. 在MacOS X C++Linker选项列表中选择Library,在Library search path (-L)中添加安装好的opencv Lib文件存放目录:/usr/local/lib/
5. 在MacOS X C++Linker选项列表中选择Library, 在Libraries(-l) 中依次点击“+”号,添加需要使用的Lib文件(通常情况下,使用前三个):
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
6. 重新build all工程,大功告成~~*^_^*
系统环境:ML10.8.2
XCode版本:4.5.2
OpenCV版本:2.4.3
Eclipse版本:Juno Service Release 1
在这里特别提醒大家:
opencv中文官方网站介绍的“opencv在Mac OS系统下的安装方法”已经严重过期,我已经试过了,失败,而且这个方法不是opencv for mac的,而是opencv for IOS的,希望大家不要再走弯路尝试了。
http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=7524&start=0
http://blog.csdn.net/eminia/article/details/6635117
为了方便刚刚接触mac的朋友,我在这里首先说明下opencv在mac下的形式。主要有两种:1. OpenCV for Mac 2. OpenCV for IOS 其中IOS的版本是为了让你的opencv使用在iphone或者ipad项目中的,即是给编写跑在IOS系统中的程序用的。而MAC的版本是给编写跑在MAC系统中的程序用的,这点非常重要,大家一定要根据自己的需求,而下载对应的版本。笔者就是因为开始弄不清楚这两个版本的区别而走了很多的弯路,现在和大家分享,希望有所帮助。
下面附上opencv官方网站的两个版本的下载链接:
目前的版本为2.4.3 http://opencv.org/downloads.html
好了,下面进入正题,笔者首先介绍OpenCV for Mac,即编写在mac系统上可以运行的C++程序。
一、安装OpenCV for MAC
1. 首先下载opencv for mac安装源文件,解压缩2. 安装cmake程序。笔者使用的是Homebrew,在终端中输入:“brew install cmake”,自动安装cmake。3.
进入存放解压后的opencv文件夹,新建一个空的文件夹release,进入该文件夹,编译安装opencv,使用命令如下:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0 -G "Unix Makefiles" ..
[align=left] make[/align]
sudo make install
4. 安装好的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”。
至此,opencv for Mac 安装完毕,参考的网址如下:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation
http://tilomitra.com/opencv-on-mac-osx/
二、在MAC下使用OpenCV
1. 新建DisplayImage.cpp文件,代码如下
#include <cv.h>
#include <highgui.h>
[align=left]using namespace cv;[/align]
[align=left]int main( int argc, char** argv )[/align]
[align=left]{[/align]
[align=left] Mat image;[/align]
[align=left] image = imread( argv[1], 1 );[/align]
[align=left] [/align]
[align=left] if( argc != 2 || !image.data )[/align]
[align=left] {[/align]
printf( "No image data \n" );
[align=left] return -1;[/align]
[align=left] }[/align]
[align=left] [/align]
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
[align=left] [/align]
[align=left] waitKey(0);[/align]
[align=left] [/align]
[align=left] return 0;[/align]
}
2. 新建CMakeLists.txt文件,代码如下:
[align=left] project( DisplayImage )[/align]
[align=left] find_package( OpenCV REQUIRED )[/align]
[align=left] add_executable( DisplayImage DisplayImage )[/align]
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
3. 编译两个文件 cd <DisplayImage_directory>
cmake .
make
4. 运行编译好的结果
./DisplayImage lena.jpg
三、在XCode中使用OpenCV
1. 创建一个空的command line工程。
2. 在main.cpp中粘贴以下代码:
[align=left]//[/align]
[align=left]// main.cpp[/align]
// FbyCharacterNormalization
[align=left]//[/align]
// Created by Boyuan Feng on 13-1-24.
// Copyright (c) 2013年 Boyuan Feng. All rights reserved.
[align=left]//[/align]
[align=left] [/align]
[align=left]#include <iostream>[/align]
[align=left]#include <opencv2/opencv.hpp>[/align]
[align=left]#include <opencv2/highgui/highgui.hpp>[/align]
[align=left]#include <opencv/cvaux.hpp>[/align]
[align=left]#include <fstream>[/align]
[align=left]using namespace std;[/align]
[align=left] [/align]
[align=left]#define BYTE unsigned char[/align]
[align=left] [/align]
int main(int argc, const char * argv[])
[align=left]{[/align]
[align=left] // insert code here...[/align]
[align=left]#if 1[/align]
[align=left] //get the image from the directed path[/align]
[align=left] IplImage* img = cvLoadImage("/Users/boyuanfeng/aaa.bmp", 1);[/align]
[align=left] //NSLog(img);[/align]
[align=left] //create a window to display the image[/align]
[align=left] cvNamedWindow("picture", 1);[/align]
[align=left] //show the image in the window[/align]
[align=left] cvShowImage("picture", img);[/align]
[align=left] //wait for the user to hit a key[/align]
[align=left] cvWaitKey(0);[/align]
[align=left] //delete the image and window[/align]
[align=left] cvReleaseImage(&img);[/align]
[align=left] cvDestroyWindow("picture");[/align]
[align=left]#endif[/align]
[align=left] //return[/align]
[align=left] return 0;[/align]
[align=left]}[/align]
[align=left] [/align]
3. 添加lib文件:右键点击工程名,选择“Add files to..”,在文件选择对话框弹出来时输入“/”,在弹出的路径框中输入:/usr/local/lib,全选该文件夹下的全部dylib文件,添加至工程。
5. 添加lib文件查找支持: 点击工程名文件,进入“Build Settings”选项卡,在“Library Search Paths”栏中输入“/usr/local/lib”
6. 添加头文件:点击工程名文件,进入“Build Settings”选项卡,在“Header Search Paths”栏中输入:“/usr/local/include /usr/local/include/opencv”
7. 编译运行整个工程,运行成功~~
四、在Eclipse中使用OpenCV
1. 按照正常的步骤,使用eclipse建立一个Mac C++工程,包含一个cpp文件,代码如xcode中的代码相同即可。
2. 右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings。
3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件存放目录:/usr/local/include/
4. 在MacOS X C++Linker选项列表中选择Library,在Library search path (-L)中添加安装好的opencv Lib文件存放目录:/usr/local/lib/
5. 在MacOS X C++Linker选项列表中选择Library, 在Libraries(-l) 中依次点击“+”号,添加需要使用的Lib文件(通常情况下,使用前三个):
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
6. 重新build all工程,大功告成~~*^_^*
相关文章推荐
- Linux mail 命令参数
- shell用户配置详解及bash命令参数
- 启动 apache2.4 出现 invalid command order 问题 【由于 PHP 访问权限 403 问题引起】
- CentOS6.5搭建LNMP
- Index Condition Pushdown Optimization
- centos find命令
- CentOS7.0下安装Apache2.4.20版本,安装完成之后,报 You don't have permission to access / on this server.
- openstack连接ceph不成功解决
- openstack连接ceph不成功
- Linux基础篇十一 —— 重定向操作符
- Zookeeper3.4.6部署伪分布集群(Apache)
- Hadoop2.6.0源码编译
- shell .bashrc中函数在其他脚本无法调用问题
- Hadoop2.2.0源码编译
- centos chown改变文件拥有者
- Centos 编写 service 启动
- shell脚本练习题
- 对三层架构的理解
- linux下软中断[si]负载均衡
- DedeCMS访问网站首页会自动在域名后面多出index.html的解决方法