http://blog.sina.com.cn/s/blog_731e24cd0100rca1.html
标签: 机器视觉 |
分类: 编程 |
操作系统:win7
Vs2008 Pro 版本+ openCV2.0,上午安装成功,调试测试程序顺利通过。
准备:
1)下载Vs2008 Pro 并安装 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&displaylang=en ,破解方式:先把setup中的steup.sdb文件用写字板打开,修改其中的product key 为PYHYPWXB3BB2CCMV9DX9VDY8T(需要先解压,修改后再用虚拟光驱软件生成ISO软件),然后安装即可;
2)下载opencv2.0并安装http://www.opencv.org.cn/index.php/Download ;
3)下载CMAKE, http://www.cmake.org/cmake/resources/software.html ,选择安装Windows (Win32 Installer) ;
至此,准备工作完成,下面用CMAKE编译opencv2.0:
1)运行cmake-gui,设置源文件路径为OpenCV的安装路径;设置目标路径为编译后存放编译结果的路径,最好把编译结果保存在opencv2.0的一个单独的文件夹里,如源文件路径为:D:\Program Files\OpenCV2.0;目标路径为:D:\Program Files\OpenCV2.0\vs2008。
2)点击对话框下面的点 configure,在弹出的对话框内选择 Visual Studio 9 2008;
3)点击“Congfigure”,完成后选择“Generate”;Vs++ 2008是支持OpenMP的,不要取消这个选项。
下面需要进一步编译出 OpenCV Debug和Release的lib、liclude和bin:
完成上一步骤后,将在D:\Program Files\OpenCV2.0\vs2008目录下生成OpenCV.sln,用VC++ 2008 Express打开它,然后执行如下操作:
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:\Program Files\Opencv2.0\vs2008\bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在D:\Program Files\OpenCV2.0\vs2008\lib目录;头文件*.h出现在D:\Program Files\OpenCV2.0\vs2008\include\opencv中。
至此,被Vs2008Pro调用的OpenCV动态库生成完毕。下面还需要设置环境变量:
计算机-》属性-》高级配置-》环境变量-》添加用户环境变量path=D:\Program Files\Opencv2.0\vs2008\bin,然后确定,注销用户或重新启动系统后生效(WIN 7下环境变量path自动生成)。
下面需要为Vs 2008 Pro配置OpenCV环境(一次设置,可长期使用):
打开Vs 2008 Pro,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
关闭Vs 2008 Pro。
到此,所有公共配置完成,可以建立项目编程了,下面给出一个测试项目opencvhello:
#include "stdafx.h"
#include "highgui.h"
//所有的以新风格命名的函数都在 cv 命名空间中
//如果希望不要每次都输入 cv:: ,则可使用下面语句
//using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
const char* imagename = "lena.jpg";// win7 下不需具体的路径,只要把图像文件放在项目里面即可。
cv::Mat img = cv::imread(imagename); // Matlab风格的 cvLoadImage 函数的另一种调用
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
if( !img.data ) // 检查是否正确载入图像
return -1;
cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口
cv::imshow("image", img); //显示图像
cv::waitKey();
return 0;
}