1.下载安装Cmake
2.用cmake配置opencv2.2,然后编译,安装
3. 在vs2008中配置opencv2.2
4. 示例程序
5. 无法显示摄像头图像的解决办法(建议先看此项 ^_^)
1.下载安装Cmake
下载cmake有各种各样的方式http://www.cmake.org/cmake/resources/software.html
2.用cmake配置opencv2.2,然后编译,安装
2.1 下载opencv2.2,http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/ ,
2.2 打开cmake,
是刚下载的opencv源代码所在的文件夹,
是cmake配置好的文件放在那里。
点击finish后看到下图的效果:
点击 Generate,得到下图
可以把cmake关掉了。
2.3编译。
然后在C:/OpenCV-2.2.0/VS2008(根据个人选择的文件夹不同而而定),
用vs2008打开它,如下图:
(1)编译debug版本,如下图;
右键点击ALL_BUILD,选择“生成”,然后右键点击INSTALL,选择“生成”,即可。
(2)生成release版本,只有一处不同之处,先选定release,其他步骤完全一致。
编译opencv2.2已经完成,还要配置。
(3)添加环境变量PATH ,
右键“我的电脑”出来下面的图片,高级→环境变量
添加C:\OpenCV-2.2.0\VS2008\bin,注意分号!!
(4)配置vs2008。
//这部分直接参考了,点这里。
打开VC++ 2008 Express,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
(5)OpenCV使用
1 打开VS 2008,创建一个Win32控制台程序openCVhello;
2 选择Solution Explorer里的openCVhello项目,点击鼠标右键,选择Properties,选择Linker中Input。
3 分别在Debug和Release的Additional Dependencies 中添加如下目录:
opencv_video220(d).lib
opencv_ts220(d).lib
opencv_objdetect220(d).lib
opencv_ml220(d).lib
opencv_legacy220(d).lib
opencv_imgproc220(d).lib
opencv_highgui220(d).lib
opencv_gpu220(d).lib
opencv_flann220(d).lib
opencv_ffmpeg220(d).lib
opencv_features2d220(d).lib
opencv_core220(d).lib
opencv_contrib220(d).lib
opencv_calib3d220(d).lib
4. 示例程序
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main( int argc, char** argv )
{
// open the file
IplImage *img = cvLoadImage("ant1.jpg");
if (!img)
{
printf("Error: could not open the image file.\n");
return 1;
}
// display the image
cvNamedWindow("Image:",CV_WINDOW_AUTOSIZE);
cvShowImage("Image:",img);
// wait for the user to press a key in the GUI window
cvWaitKey(0);
// Free the resourse
cvDestroyWindow("Image:");
cvReleaseImage(&img);
return 0;
}
5. 无法显示摄像头采集到的数据的解决办法
由于OpenCV2.2的一个已知bug导致的上述问题,这个bug已经被修改到其对应分支上,但是官网上发布的文件包并没有包含这个修改。因此只要手动修改这个bug对应的代码,问题便可解决。需要修改的文件位置: $(OpenCV Folder)\modules\highgui\src\precomp.hpp
找到如下代码:
#if !defined WIN32 && !defined _WIN32
#include "cvconfig.h"
#else
void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin );
#endif
将其修改为:
#include "cvconfig.h"
#if defined WIN32 && defined _WIN32
void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin );
#endif
然后要做的就是用Cmake重新编译一下OpenCV2.2的代码,然后重新编译一下OpenCV.sln。
当然,如果能在第一次编译之前作出如上修改,相信能节省不少时间~