注意本文是针对vs2015的,因为vs2015为vc14在以前的opencv中没有vc14,因此带来了很多的不便,本文对VS2015-openCV3.1.0配置进行说明。
1 安装vs,opencv
vs2015安装与opencv3.1.0安装过程不予讲述。
2 OpenCV3.1.0环境变量配置
右键属性->高级系统设置->环境变量->系统变量->找到Path->在变量值中添加相应路径,我的路径是
H:\Opencv3.1.0\opencv\build\x64\vc14\bin
3 VS中配置
<一>: 首先建立一个Win32控制台项目,然后选择空项目
<二>: 先在源文件下建立一个.cpp源文件 命名为main.cpp
<三> :然后点击视图,在视图下找到其他窗口,在其他窗口下找到属性管理器,点击打开,.然后便会有一个属性管理器的窗口了,接下来点开工程文件test,下边会有一个Debug|x64的文件夹,点开,下有名为Microsoft.Cpp.x64.user的文件,右键属性
<四>然后选择通用属性下的VC++目录,右边会有包含目录和库目录,点击包含目录,添加以下三条路径,其实这些都是刚才OpenCV相关解压文件所在的目录
H:\Opencv3.1.0\opencv\build\include
H:\Opencv3.1.0\opencv\build\include\opencv
H:\Opencv3.1.0\opencv\build\include\opencv2
这三条路径要依据自己解压OpenCV3.1的路径进行修改
<五> :再点击库目录添加下面一条路径
C:\Opencv3.1.0\opencv\build\x64\vc14\lib
还是刚才的属性页面 点击链接器,选择输入,会在右侧看到附加依赖项,添加下面文件 opencv_world310d.lib
4 测试
#include<opencv2\opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
cout << "hello opencv " << endl;
IplImage *plmg = cvLoadImage("lena.jpg", 1); //声明IplImage指针
cvNamedWindow("Image", 1); //创建窗口
cvShowImage("Image", plmg); //显示图像
cvWaitKey(0); //等待按键 如果没有这句,显示图片的那句就会一闪而过 立刻销毁了
cvDestroyWindow("Image");
cvReleaseImage(&plmg);
return 0;
}
注意:1.这里用的是 debug x64版本,要将vs中 x86改成x64
2.图片放在项目的Debug下。
这里给出最新的opencv 读图的方法
//! [includes]
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
//! [includes]
//! [namespace]
using namespace cv;
//! [namespace]
using namespace std;
int main(int argc, char** argv)
{
//! [load]
String imageName("cute.jpg"); // by default
if (argc > 1)
{
imageName = argv[1];
}
//! [load]
//! [mat]
Mat image;
//! [mat]
//! [imread]
image = imread(imageName, IMREAD_COLOR); // Read the file
//! [imread]
if (image.empty()) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
//! [window]
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
//! [window]
//! [imshow]
imshow("Display window", image); // Show our image inside it.
//! [imshow]
//! [wait]
waitKey(0); // Wait for a keystroke in the window
//! [wait]
return 0;
}