看了好多文档,都没有讲到opencv的正确的配置方法。这里总结一下。
1.安装mingw
具体配置参照
我这里用了QTSDK自带的mingw。mingw这个东东,做一个自动下载安装的组件,上不去网时没法安,还是安装企业版打包好的比较好。
环境变量按照相对应的路径配置就好了。
把mingw32-make.exe 复制一下,并重命名为make.exe。(eclipse 默认要用make.exe)
2.安装opencv
我这里用了OpenCV-2.3.1-win-superpack.exe。superpack嘛,就是什么 都有了,包括编译好的类库,包括头部文件等 ,甚至连官方的reference和tutorial等 都包含了进来。
安装完之后,在x:\opencv。之后配置都是用相对路径了。建议安装时不要中间出现有空格的路径,可能会有问题。
环境变量嘛,网上写了都需要配置。我觉得不用配置。在eclipse中建工程中就配置了,为什么要在系统路径里面配置呢。
3.eclipse -cdt
下载安装
eclipse -cdt。我这里用了eclipse-cpp-indigo-SR1-incubation-win32。之前要安装jdk 和jre等,这里就不说了。
先新建一个helloWorld工程,看看编译器是不是好用。如果不好用的话,配置一下mingw路径。如果没有问题的话,可以向下配置了。
3.1 新建一个工程file -> new -> c++ project empty project
3.2 新建一个main.cpp 代码如下。可以具体参照opencv中的例子中有很多了,找个就行。
/***********************************************************************
* OpenCV example
* By Shiqi Yu 2006
***********************************************************************/
#include "cv.h"
#include "highgui.h"
int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针
//载入图像
if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )
{
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
return 0;
}
return -1;
}
3.3 在工程上右键,properities >c/c++ Build > Settings >如图。
3.4 设置include 文件。
在GCC C++ Compiler 中的includes 中添加以下三项(切记,一定要加带build路径中的那个include)
"x:\opencv\build\include"
"x:\opencv\build\include\opencv"
"x:\opencv\build\include\opencv2"
3.5设置lib路径。
在MinGW C++ Linker > Libraries中 上面框
Libraries -l中加入以下lib(有些库可能在用的时候不一定用到,为了不出问题,索性都添上)。
libopencv_calib3d231
libopencv_contrib231
libopencv_core231
libopencv_features2d231
libopencv_flann231
libopencv_gpu231
libopencv_highgui231
libopencv_imgproc231
libopencv_legacy231
libopencv_ml231
libopencv_objdetect231
libopencv_video231
opencv_ffmpeg
注意,这里面的lib是正确的。网上其他地方的cv highgui什么 的,都是以前版本的了。mingw编译的时候,不需要lib的扩展名。
具体这些名字可以在x:\opencv\build\x86\mingw\bin中找到,要是懒得敲的话,可以用命令行dir /b >dir.txt ,之后打开dir.txt,把.dll替换一下就好了。这可能对以后的版本会有用些。
在下面的libraries search path(-L)中添加以下两行
"x:\opencv\build\x86\mingw\lib"
"x:\opencv\build\x86\mingw\bin"
如果能build过去的话,这样应该就可以了。
运行时需要注意一下,上面的程序需要一个命令行参数来作为输入的图片。 需要这样来运行****.exe lina.tif