最近想把FPGA采集的图像,上传到上位机显示,看到Opencv能帮大忙,所以就折腾折腾!
我用的是VS2012和opencv-2.4.10-2.4.10(目前的最新版本),那个版本无所谓,本文都将适用。
首先安装opencv,安装过程仅仅就单击下exe即可;我安装到目录C:\opencv,安装好了之后,看下目录结构:、
选择其中的一个目录打开看看:
1、我当前机器是32位的所以选择的是X86这个路径,64位机器应选择x64;
2、我用的VS2012,所以选择的是VC11这个文件夹(里面还有VC10,VC12,那么对于的是其他VS版本)
我们看到Opencv为我们提供了很多库文件,这些到候要添加到vs的附加依赖项中,这是后话。
以上所说的都是不同版本安装时要注意的问题,下面,我就以VS2012和opencv-2.4.10-2.4.10
开始讲解。
首先,在我的电脑中配置OpenCV的环境变量:
右键我的电脑-》属性,然后顺序如下图所示:
Path变量值中添加如下语句:(你之前可能有其他软件的环境变量,注意不要覆盖,每条语句用“;”隔开即可)
;C:\opencv\opencv\build\x86\vc11\bin;
这里的目录根据你的Opencv安装目录,已经vs的版本,进行修改,上面已经提到了。
接着是VS2012 的配置,首先新建一个控制台程序!没错!就是控制台程序,Opencv就可以帮助我们构建一个界面!
打开项目属性-》VC++目录,然后我们需要为包含目录,引用目录,库目录添加一些东西:
包含目录:
引用目录:
库目录:
这些都是我们安装完opencv产生的目录自己添加吧!
最后,还需要附加依赖项,添加的内容就是第一章图片显示的那些库文件,全部添加吧:
1、opencv_calib3d2410.lib ,中的2410表示的版本号。这里避免大家一个个赋值粘贴了,我还是贴出来吧!
2、opencv_calib3d2410.lib和opencv_calib3d2410d.lib
一个是Release模式下的,请注意分别添加,这个是之后写Mat类程序才发现的。
//---------Debug--------- opencv_calib3d2410d.lib opencv_contrib2410d.lib opencv_core2410d.lib opencv_features2d2410d.lib opencv_flann2410d.lib opencv_gpu2410d.lib opencv_highgui2410d.lib opencv_imgproc2410d.lib opencv_legacy2410d.lib opencv_ml2410d.lib opencv_nonfree2410d.lib opencv_objdetect2410d.lib opencv_ocl2410d.lib opencv_video2410d.lib opencv_videostab2410d.lib //--------release---------- opencv_calib3d2410.lib opencv_contrib2410.lib opencv_core2410.lib opencv_features2d2410.lib opencv_flann2410.lib opencv_gpu2410.lib opencv_highgui2410.lib opencv_imgproc2410.lib opencv_legacy2410.lib opencv_ml2410.lib opencv_nonfree2410.lib opencv_objdetect2410.lib opencv_ocl2410.lib opencv_videostab2410.lib
最后还有一点得注意:就是如果你是X64平台,那么VS的在配置管理器中需要设置平台为x64,而不是win32.
到目前为止,VS与Opencv就已经很好的关联在一起了。
#include "stdafx.h" #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//不让控制台窗口出现 #include < highgui.h> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { int k; //从文件中读入图像 Mat img = imread("D:\\kk\\ww.jpg",1);//0显示的就是黑白的 //如果读入图像失败 if(img.empty()) { printf("Can not load image %s\n"); cin >> k; return -1; } //显示图像 imshow("ww.jpg", img); //此函数等待按键,按键盘任意键就返回 waitKey(); return 0; }