Google
 
Back to index

创建 OpenCV 应用程序的方法有很多种,在 Windows 下可以在 Visual Studio 2005 里很方便地创建 OpenCV 应用程序,也可以用 MinGW,在 Linux 上自然也有不同的方法。

如果我们的工作需要考虑到跨平台的特性,那我们应该怎么办呢?如果写出来的代码能够直接在不同的平台下编译,那将省去很多麻烦!下面就介绍一下创建跨平台的 OpenCV 应用程序的基本思路与步骤。

参考资源:http://opencv.willowgarage.com/wiki/Getting_started

基本要求

设置我们的机器

测试 CMake 是否能和 OpenCV 一起工作

我们通过下面这个简短的程序来测试一下 CMake 能否和 OpenCV 一起有效地工作。

1. 创建程序文件

新建一个名为 Test.cpp 的程序文件,把下面的代码拷进去:

#include <cv.h>
#include <highgui.h>

int main ( int argc, char **argv )
{
  cvNamedWindow( "My Window", 1 );
  IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
  CvFont font;
  double hScale = 1.0;
  double vScale = 1.0;
  int lineWidth = 1;
  cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
              hScale, vScale, 0, lineWidth );
  cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
             cvScalar( 255, 255, 0 ) );
  cvShowImage( "My Window", img );
  cvWaitKey();
  return 0;
}

2. 创建 CMake 文件

再创建一个名为 CMakeLists.txt 的文件(里面的文件名和生成的可执行文件名需要根据实际情况进行修改),放入下面的内容:

PROJECT( pr )
FIND_PACKAGE( OpenCV REQUIRED )
INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} )
ADD_EXECUTABLE( test test.cpp )
TARGET_LINK_LIBRARIES( test ${OPENCV_LIBRARIES} )

从命令终端 ( shell ) 进入 test.cpp 所在的目录,如果是 Linux ,输入下面的命令:

$> cmake .
$> make

如果是 Windows,用下面的命令:

$> CMakeSetup .
$> make

选择适当的编译器(Windows 下可以选择生成 MinGW makefile 或是 MSYS makefile),生成相应的 makefile,然后再到这个 makefile 所在的目录里 make 一把。

如果能顺利生成一个名为 Test 的可执行文件,则我们成功了!现在编写的 OpenCV 程序可以在任何平台上跑了。

PS:在 Windows 下,如果生成的是 MSYS makefile,则需要从 MSYS 里进行到该目录用命令 make 进行编译;如果生成的是 MinGW makefile,则可以从 Windows 的 cmd 里进行该目录运行 make 编译指令。