无论你的系统是win7还是win8,无论是32位的还是64位的系统,按一下的方法配置几乎都是会成功的。
刚接触opencv和vs的时候在网上找了很多关于如何如何配置的教程,但是很容易出问题,有的是配置完后会提示找不到core246.dll或每建一个工程都要进行配置,一度让我很头疼。自己重装win8后再网上看了不少教程最后总结出下面的教程。
第一步:vs2012的下载和opencv的下载,这些都可以在他们的官网上下到,我就不多说了。
第二部:环境变量的配置
1.在用户变量新建
OPENCV 和PATH
OPENCV=E:\opencv\build
PATH=E:\opencv\build\x64\vc11\bin;E:\opencv\build\x86\vc11\bin
如果是32位的PATH中可以不用加E:\opencv\build\x64\vc11\bin
2.在系统变量的
PATH里面加上
E:\opencv\build\x64\vc11\bin;E:\opencv\build\x86\vc11\bin
如果是32位的PATH中可以不用加E:\opencv\build\x64\vc11\bin
以上的地址是我放opencv2.4.6的地址,可根据具体位置更改。
配置完以后重启电脑或者注销环境变量才能生效。如下图
第三部:配置项目环境
Vs2012和前面版本的配置不同了,因为在vs工具选项中的项目解决方案中的vc++目录的编辑被否决了。所以只能在新建的工程项目中进行配置。
1:随便新建一个win32控制台程序,ConsoleApplication4
2:打开新建工程的项目属性管理器
3:在Debug上右击添加新项目属性表,名字任意,然后项目属性表就添加就来了
4:对添加的项目属性表进行配置
对VC++目录中的包含目录和库目录进行配置
将包含目录改成
E:\opencv\build\include;E:\opencv\build\include\opencv;E:\opencv\build\include\opencv2;
将库目录改成
E:\opencv\build\x86\vc11\lib;E:\opencv\build\x64\vc11\lib;
这里将32位和64位都加进去了
5:对属性页中连接器的输入下的附加依赖项进行设置
在debug下加上
opencv_calib3d246d.lib
opencv_contrib246d.lib
opencv_core246d.lib
opencv_features2d246d.lib
opencv_flann246d.lib
opencv_gpu246d.lib
opencv_haartraining_engined.lib
opencv_highgui246d.lib
opencv_imgproc246d.lib
opencv_legacy246d.lib
opencv_ml246d.lib
opencv_nonfree246d.lib
opencv_objdetect246d.lib
opencv_ocl246d.lib
opencv_photo246d.lib
opencv_stitching246d.lib
opencv_superres246d.lib
opencv_ts246d.lib
opencv_video246d.lib
opencv_videostab246d.lib
在release下将上面的所有库项中的d去掉,release下的其他配置同debug配置相同
6:配置好了以后,记得在项目属性表上面右键保存,否则关闭以后就丢失了。
7:在以后每次新建一个项目后,你在Debug和Release上面右键把你之前配置好的这两个项目属性表添加进去就行了
测试程序1:
#include <opencv2/opencv.hpp>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace std;
using namespace cv;
int main(int argc, int * argv[])
{
IplImage* img = cvLoadImage("girl.jpg");//加载图片,为图片设置一段内存给img。
//窗口命名
cvNamedWindow("open a pic",CV_WINDOW_AUTOSIZE);
//显示图片
cvShowImage("open a pic",img);
//等待按键退出
cvWaitKey(0);
//释放img占用的空间
cvReleaseImage(&img);
cvDestroyWindow("open a pic");
}
测试程序2:
#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv; //下面的所有cv相关类型不用加上前缀了
//
int main(int argc, char* argv[])
{
Mat img = imread("F:\\图片10.jpg"); //声明Mat变量并调入lena的照片
if(!img.data) //判断图片调入是否成功
return -1; //调入图片失败则退出
//创建窗口,并确定其为大小不可变类型窗口
/*namedWindow("loveLena", CV_WINDOW_AUTOSIZE);*/
//显示图片。如果你不介意窗口大小可变,可以直接注释掉上一句。因为imshow可以直接创建窗口
imshow("loveLena", img);
waitKey(0); //等待按键
return 0;
}