vs2008下opencv2.2的环境搭建及无法显示摄像头图像的bug解决

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

  • Show directories for选择executable files,加入目录C:\OpenCV-2.2.0\VS2008\\bin
  • Show directories for选择library files,加入目录 C:\OpenCV-2.2.0\VS2008\ib
  • (重要)Show directories for选择include files,加入目录C:\OpenCV-2.2.0\VS2008\include 和 C:\OpenCV-2.2.0\VS2008\include\opencv

5OpenCV使用

1 打开VS 2008,创建一个Win32控制台程序openCVhello

2 选择Solution Explorer里的openCVhello项目,点击鼠标右键,选择Properties,选择LinkerInput

3 分别在DebugReleaseAdditional 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

当然,如果能在第一次编译之前作出如上修改,相信能节省不少时间~

你可能感兴趣的:(职场,vs2008,休闲,opencv2.2)