win7+visual studio2010+Opencv配置
2016-03-20 10:56
281 查看
我的电脑:
win7.64bit
visual stduio 2010旗舰版
open cv2.4.9
1.下载并解压OpenCV
下载好之后,解压到任意一个文件夹,比如“E:\softwares”。没有必要手动创建一个专门的文件夹,因为文件在解压时会自动创建一个叫opencv的文件夹,并把所有文件都解压到这个文件夹内。
![](http://img.blog.csdn.net/20160320105756457?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.设置环境变量
OpenCV库函数需要通过用户环境变量调用所需要的库文件。点击:开始->计算机(右击)->属性->高级系统设置->高级->环境变量,在用户变量里增加一项:
变量名:path
变量值:E:\softwares\opencv\build\x86\vc10\bin
如果已经有path项,在其变量值结尾添加英文分号“;”,再加上上面那个值。
这里的“x86”代表目标程序是32位的,如果要写64位的程序则选择“x64”文件夹。并不是根据开发环境(你的机器)选择的。
后面的“vc10”代表使用Visual C++ 2010开发。如果使用Visual Studio 2012,则填写“E:\softwares\opencv\build\x86\vc11\bin”。
![](http://img.blog.csdn.net/20160320105904957?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注销用户,重新登录Windows,保证环境变量更新并起作用。
3.创建并配置工程
打开Visual
Studio 2010,新建一个工程,选择Visual C++ ->Win32->Win32 Console Application,命名例如“OpencvTest”,
![](http://img.blog.csdn.net/20160320105943958?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击“Next”,
选择Console
Application和Preconpiled header。因为程序中需要调用一些C++的库函数,所以最好勾选Precompiled header。“Additional options”中的“Empty project”最好也选上,如果不勾选“Empty project”,在代码最前面还要加一行:
避免出现fatal error C1010错误。然后点击“Finish”。
![](http://img.blog.csdn.net/20160320110102175?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在Solution
Explorer中右击工程名,选择Properties
![](http://img.blog.csdn.net/20160320110132412?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在弹出的窗口“OpencvTest Property Pages”中,Configuration选择“Debug”(或者默认的“Active(Debug)”),Platform选择“Win32”。在左边选择Configuration Properties->VC++ Directories,在右边的General中编辑Include
Directories,增加以下三项:
E:\softwares\opencv\build\include
E:\softwares\opencv\build\include\opencv
E:\softwares\opencv\build\include\opencv2
![](http://img.blog.csdn.net/20160320110200270?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其实只需要填入第一行即可。由于“include\opencv”包含C版本的头文件,“include\opencv2”包含C++版本的头文件。所以编写代码时,在头文件名称前加上“opencv/”或“opencv2/”来区分两种版本。
在Library Directories中增加以下一项:
E:\softwares\opencv\build\x86\vc10\lib
![](http://img.blog.csdn.net/20160320110246116?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
把Configuration改为“Release”,然后对Include Directories和Library Directories做同样的修改。如果只写练习程序,只用debug功能,那么“Release”可以不用修改。如果使用Visual Studio 2012,则填写“E:\softwares\opencv\build\x86\vc11\lib”。
仍然在“OpencvTest Property Pages”窗口下,Configuration选择“Debug”。在左边选择Configuration Properites->Linker->Input,在右面编辑Additional Dependencies,增加以下若干项(可以根据自己的需要适当删减,关于各个模块的功能,请参考这里):
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_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
![](http://img.blog.csdn.net/20160320110312037?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(同样,如果仅使用debug模式,这一步可以跳过)把Configuration改为“Release”,在Additional Dependencies增加以下若干项(在文件名上的区别仅在于在末尾少了一个“d”):
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_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
![](http://img.blog.csdn.net/20160320110346272?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
虽然OpenCV版本众多,但文件结构都很类似。如果想使用其他版本,如2.4.7而不是2.4.10,只需要修改上面一系列*.lib文件名中的版本号即可,比如把“opencv_calib3d2410.lib”改为“opencv_calib3d247.lib”。在Notepadd++等文本编辑器中,有一个快速修改的方法,就是使用Notepadd++等文本编辑器的替换功能,以“247”替换“2410”。
4.例程测试
假设在“H:\”盘有个名为“bee.jpg”的图片,下面用一段程序实现把这个图片逐渐变成灰度图像的过程。
删掉OpencvTest.cpp内的内容,把下面的代码复制进去:
这段程序先读入bee.jpg图片,再创建一个同样大小的灰度版本的图片,然后在一个循环中把两张图片按逐渐变化的比例融合,产生从彩色到灰度变化的动态效果。
点击按钮“Start Debugging”或按F5键,程序就会运行了。运行效果如下:
win7.64bit
visual stduio 2010旗舰版
open cv2.4.9
1.下载并解压OpenCV
下载好之后,解压到任意一个文件夹,比如“E:\softwares”。没有必要手动创建一个专门的文件夹,因为文件在解压时会自动创建一个叫opencv的文件夹,并把所有文件都解压到这个文件夹内。
2.设置环境变量
OpenCV库函数需要通过用户环境变量调用所需要的库文件。点击:开始->计算机(右击)->属性->高级系统设置->高级->环境变量,在用户变量里增加一项:
变量名:path
变量值:E:\softwares\opencv\build\x86\vc10\bin
如果已经有path项,在其变量值结尾添加英文分号“;”,再加上上面那个值。
这里的“x86”代表目标程序是32位的,如果要写64位的程序则选择“x64”文件夹。并不是根据开发环境(你的机器)选择的。
后面的“vc10”代表使用Visual C++ 2010开发。如果使用Visual Studio 2012,则填写“E:\softwares\opencv\build\x86\vc11\bin”。
注销用户,重新登录Windows,保证环境变量更新并起作用。
3.创建并配置工程
打开Visual
Studio 2010,新建一个工程,选择Visual C++ ->Win32->Win32 Console Application,命名例如“OpencvTest”,
点击“Next”,
选择Console
Application和Preconpiled header。因为程序中需要调用一些C++的库函数,所以最好勾选Precompiled header。“Additional options”中的“Empty project”最好也选上,如果不勾选“Empty project”,在代码最前面还要加一行:
1 | #include "stdafx.h" |
在Solution
Explorer中右击工程名,选择Properties
在弹出的窗口“OpencvTest Property Pages”中,Configuration选择“Debug”(或者默认的“Active(Debug)”),Platform选择“Win32”。在左边选择Configuration Properties->VC++ Directories,在右边的General中编辑Include
Directories,增加以下三项:
E:\softwares\opencv\build\include
E:\softwares\opencv\build\include\opencv
E:\softwares\opencv\build\include\opencv2
其实只需要填入第一行即可。由于“include\opencv”包含C版本的头文件,“include\opencv2”包含C++版本的头文件。所以编写代码时,在头文件名称前加上“opencv/”或“opencv2/”来区分两种版本。
在Library Directories中增加以下一项:
E:\softwares\opencv\build\x86\vc10\lib
把Configuration改为“Release”,然后对Include Directories和Library Directories做同样的修改。如果只写练习程序,只用debug功能,那么“Release”可以不用修改。如果使用Visual Studio 2012,则填写“E:\softwares\opencv\build\x86\vc11\lib”。
仍然在“OpencvTest Property Pages”窗口下,Configuration选择“Debug”。在左边选择Configuration Properites->Linker->Input,在右面编辑Additional Dependencies,增加以下若干项(可以根据自己的需要适当删减,关于各个模块的功能,请参考这里):
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_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
(同样,如果仅使用debug模式,这一步可以跳过)把Configuration改为“Release”,在Additional Dependencies增加以下若干项(在文件名上的区别仅在于在末尾少了一个“d”):
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_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
虽然OpenCV版本众多,但文件结构都很类似。如果想使用其他版本,如2.4.7而不是2.4.10,只需要修改上面一系列*.lib文件名中的版本号即可,比如把“opencv_calib3d2410.lib”改为“opencv_calib3d247.lib”。在Notepadd++等文本编辑器中,有一个快速修改的方法,就是使用Notepadd++等文本编辑器的替换功能,以“247”替换“2410”。
4.例程测试
假设在“H:\”盘有个名为“bee.jpg”的图片,下面用一段程序实现把这个图片逐渐变成灰度图像的过程。
删掉OpencvTest.cpp内的内容,把下面的代码复制进去:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | #include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream> using namespace cv;using namespace std; int main(int argc, char **argv){ const char* filename = "H:\\bee.jpg"; Mat srcImg = imread(filename, CV_LOAD_IMAGE_COLOR); if(srcImg.empty()) return -1; //imshow("source", srcImg); double timeSpent = (double)getTickCount(); //----------------------------------- Mat tmp1Img(srcImg.size(),CV_8UC1); Mat tmp3Img(srcImg.size(),CV_8UC3); cvtColor(srcImg,tmp1Img,CV_RGB2GRAY); cvtColor(tmp1Img,tmp3Img,CV_GRAY2RGB); Mat dstImg(srcImg.size(), CV_8UC3); double blender; for(int i=0; i<100; i++) { blender = (double)i/100.0; addWeighted(srcImg,1-blender,tmp3Img,blender,0,dstImg); imshow("result",dstImg); waitKey(30); } //------------------------------------ timeSpent = ((double)getTickCount() - timeSpent)/getTickFrequency(); cout << "Time spent in milliseconds: " << timeSpent*1000 << endl; waitKey(0); return 0;} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char **argv) { const char* filename = "H:\\bee.jpg"; Mat srcImg = imread(filename, CV_LOAD_IMAGE_COLOR); if(srcImg.empty()) return -1; //imshow("source", srcImg); double timeSpent = (double)getTickCount(); //----------------------------------- Mat tmp1Img(srcImg.size(),CV_8UC1); Mat tmp3Img(srcImg.size(),CV_8UC3); cvtColor(srcImg,tmp1Img,CV_RGB2GRAY); cvtColor(tmp1Img,tmp3Img,CV_GRAY2RGB); Mat dstImg(srcImg.size(), CV_8UC3); double blender; for(int i=0; i<100; i++) { blender = (double)i/100.0; addWeighted(srcImg,1-blender,tmp3Img,blender,0,dstImg); imshow("result",dstImg); waitKey(30); } //------------------------------------ timeSpent = ((double)getTickCount() - timeSpent)/getTickFrequency(); cout << "Time spent in milliseconds: " << timeSpent*1000 << endl; waitKey(0); return 0; } |
点击按钮“Start Debugging”或按F5键,程序就会运行了。运行效果如下:
相关文章推荐
- NFS服务的搭建
- opencv k-means
- OpenCL: kernel中的向量关系运算符和等价运算符(>,<,>=,<=,==,!=)
- Centos7 root密码重置
- Linux程序包管理(rpm)
- Opengl 单双缓冲区区别
- Eclipse中用Tomcat发布的Web项目存放路径
- OpenGL两种投影方式
- VI基本操作
- linux内核分析第四次实验
- 智能维护系统的算法s
- Linux的system()和popen()差异
- tomcat 启用 manager app 管理当前tomcat的war包
- linux基础命令
- 保存修改后的Docker容器
- Linux实验四报告
- 解析Tomcat内部结构和请求过程
- openssl相关指令及生成私有证书
- 进入Docker容器
- Hadoop,Zookeeper和Hbase安装