win7+VS2008上openCV的安装(最佳方法)


前提是要先安装好CMake(CMake是一个编译器,并不针对openCV,还可以编译CGAL等库,就是一个辅助工具)。下载CMake(我电脑上装的是2.8版本,openCV下载的是2.3.1版本,openCV可搜寻“OpenCV-2.3.1-win-superpack”)

一般用编译好的openCV库直接放在自己的电脑上,可能会出现一些问题,比如系统不兼容,而且虽然win7是64位系统,但是在VS运行上可能只用了32位,也会造成已经编译好的openCV库的调用问题(使用已经编译好的openCV库方法请参考 点击打开链接

为了保证openCV能够顺利调用,最好用CMake针对自己的电脑系统进行openCV编译。过程如下:

1.openCV的安装及编译

  • 将 OpenCV-2.3.1-win-superpack.exe 解压并放到某个目录下(无需运行setup.exe,解压则可)。
  • 用CMake导出VC++项目文件
    • 运行cmake-gui(在cmake安装路径中的bin文件夹中)
    • 设置"where is the source code"路径为上述的OpenCV解压的文件夹路径
    • 设置"where to build the binaries"路径为OpenCV安装的路径,假定为  D:\Program Files\OpenCV2.3.1 
    • 然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
    • configure done,再次点击configure
    • 最后点击generate
  • 编译 OpenCV Debug和Release版本库
    • 完成上一步骤后,将在 D:\Program Files\OpenCV2.3.1 目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln
    • 在Debug下,选择Solution Explorer (视图→解决方案资源管理器)里的 Solution OpenCV(解决方案“OpenCV”),点右键,运行"Rebuild Solution"(重新生成解决方案);如编译无错误,再选择INSTALL项目,运行"Build"。
    • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
    • 全部运行完毕后,针对你的系统的OpenCV库就生成了。

2. 在VS上设置openCV的配置:
打开VS,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”
  • 配置exe路径:
    • 选择“可执行文件”,添加路径 D:\Program Files\OpenCV2.3.1\install\bin
  • 配置include路径:
    • 告诉VC去什么地方寻找OpenCV的头文件
    • 选择“包含文件”,添加路径 D:\Program Files\OpenCV2.3.1\install\include
  • 配置lib路径:
    • 告诉VC去什么地方寻找OpenCV的库文件
    • 选择“库文件”,添加路径 D:\Program Files\OpenCV2.3.1\install\lib

3. 设置环境变量:
  • 刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll目录为:D:\Program Files\OpenCV2.3.1\install\bin 
  • 加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。

4. 新建工程,调用openCV函数
  • 在项目→属性→配置属性→链接器→输入→附加依赖项中添加:opencv_calib3d231d.lib opencv_contrib231d.lib opencv_core231d.lib opencv_features2d231d.lib opencv_flann231d.lib opencv_gpu231d.lib opencv_highgui231d.lib opencv_imgproc231d.lib opencv_legacy231d.lib opencv_ml231d.lib opencv_objdetect231d.lib opencv_ts231d.lib opencv_video231d.lib (说明:231对应的就是版本号,d表示debug模式下,如果你的工程用的是release模式,可以将d这个去掉,也可以将两种都添加上去,如:opencv_calib3d231d.lib opencv_calib3d231.lib。因为我用的是debug模式,在具体应用中,包含了opencv_calib3d231.lib会造成编译不成功,索性就只添加d相关的库。另外,上面包含的库文件数可根据实际需求进行删减)
  • 在主程序中尝试代码,输入以下代码,调试运行成功(正常显示图片)

<span style="font-size:14px;">#include "stdafx.h"
#include <opencv.hpp>
using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
	const char* imagename = "lena.jpg";

	//从文件中读入图像
	Mat img = imread(imagename);

	//如果读入图像失败
	if(img.empty())
	{
		fprintf(stderr, "Can not load image %s\n", imagename);
		return -1;
	}

	//显示图像
	imshow("image", img);

	//此函数等待按键,按键盘任意键就返回
	waitKey();

	return 0;
}
</span>




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值