开始接触图像处理有一段时间了,经过前期的调研,和相关入门知识的学习,开始接触一些图像处理应用的工具。Opencv是一个图像处理的开源库,由于其开放的协议架构,国内外很多科研机构和团队都在基于opencv做开发。
首先开发opencv要对opencv进行配置,本篇博客就是写出我的配置过程,和遇到的一些问题,供大家参考应用。
开始吧!
第一步 下载和安装Opencv
首先要上opencv网站上下载opencv的包,就是一个.exe文件。网址: http://opencv.org/
这个文件大概350M左右。截止自2015年12月,Opencv在2015年6月4日已经发布至3.0版本,在opencv网站上面可以下载到最新的版本。
配置当然还要vs开发环境,本文以opencv2.4.9版本,vs2012(自行下载安装)为例:
下载完了opencv,便可以进行安装和配置。运行可执行下载的opencv2.4.9.exe文件如下图
与其说是安装,不如说是解压会更合适一点,选择要把该开源库解压到的路径,解压到
D:Program Files,由于opencv项目文件打包的时候,已经统一放在Opencv的文件目录下,所以无需新建一个文件夹,命名为Opencv,只要选择上一级目录就ok了。不说废话上图
然后点击红框的Extract,就是一场漫长的等待之旅,(也就几分钟吧!哈哈哈!)
解压完之后是万里长征第一步呀!好奇心害死猫呀,好奇的同学就想看看,解压出来的到底是何方神圣!其实在解压之后Opencv目录下就包含两个文件夹,一个build,一个source,build是Opencv使用的相关文件。Source是相关的源码和一些文件。还不太了解它是啥,没事放着吧,得先把它配好了才可以收拾它嘛!接下啦开始第二步。
第二步配置环境变量
【计算机】—【系统属性】—【高级系统配置】—【高级(标签栏)】—【环境变量】—双击环境变量中的PATH—在变量中添加刚刚解压的Opencv路径。高能区:添加是加,不是删除之前的变量值,在之前的环境变量之后添加一个“;”再加入Opencv的值。没图你说个bb!上图:
重要的事情说三遍:双击5的PATH,加“;”然后加路径,注意打开路径至
D:ProgramFilesopencvuildx64vc11in,然后单击复制该路径,不要手输,手输容易出错!出错!出错!X64和X86建议都加进去,D:ProgramFilesopencvuildx64vc11in;D:ProgramFilesopencvuildx86vc11in两个路径都挤进去。添加环境变量就是添加bin的路径,X86表示用的是32位的编译器编译,X64表示用64位的编译器编译(只是看书说的,并未验证,错了也没关系,都配进去都可以用,不冲突,所以你不要打我)。
内心小激动呀,环境变量配完了,又完成一步,什么?这就完了?骚年想多了!接下来还有第三步!来来来先乖乖注销系统,这样人家才可以生效嘛,什么不会注销,那就简单粗暴点重启吧!
第三步工程包含的目录(include)配置
考虑到以后一直都会用Opencv来做相应的开发,这下就弄一个一劳永逸的方法,配一次就不要再配了!
为了有始有终,我应该吧全过程都搞出来,让大家看看嘛,大神请自觉跳过若干步
1、 打开visualstudio ,新建一个项目,单击起始页的【新建项目】,上图看一下
话说,条条道路通罗马嘛,来来来第二种方法,【文件】—【新建】—【项目】;话不多说继续上图
然后选择Visual C++ ,新建【win32控制台运用程序】,然后给自己的工程项目命名(阿猫阿狗随便叫),选择路径(要养成良好的管理文件的习惯啊骚年),然后点击【确定】,如图,
2、然后出现win32运用程序向导界面,点击【下一步】,下一个界面,勾选【空项目】点击【完成】。瞅瞅看哈:
3、 解决方案资源管理器的【源文件】右击—【添加】—【新建项】,来一发:
4、 选定【C++文件(cpp)】,进行重命名,像main(阿猫阿狗随便叫,不要中文就好了),然后单击【添加】,看图:
这样就把一个空白的.cpp文件加入工程中了
5、 单击【视图】—【属性管理器】,这样子调出属性管理器,相当于通用配置,之后的再用就无需配置了,一劳永逸啊有木有!来张图:
VS2013属性管理器在【视图】-【其他窗口】-【属性管理器】(2015/12/15)
6、 在出现的“属性管理器”工作区中,展开【Debug|Win32】文件夹(点击前面的小三角号),对文件夹下面的【Microsoft.Cpp.Win32.user】右键—【属性】打开属性界面。对其进行配置。如图
7、 打开属性界面之后,就可以对其进行include的配置,【通用属性】—【VC++目录】—【包含目录】中添加以下三个目录:
D:ProgramFilesopencvuildinclude
D:ProgramFilesopencvuildincludeopencv
D:ProgramFilesopencvuildincludeopencv2
建议像选路径那样子选,不要手输入,手输入容易出错,(毕竟人不如机器死板呀)这是和之前解压的路径有关的,你只要通过路径寻找到那几个文件夹,添加就可以了。
接下来配置库文件目录:
这一步和上面配置的include差不多,都是在属性管理器里面,的那个属性,【Debug|Win32】——【Microsoft.Cpp.Win32.user】右键—【属性】打开属性界面。对其进行配置。
属性界面出来之后,【通用属性】—【VC++目录】—【库目录】添加D:ProgramFilesopencvuildx86vc11lib
这里声明一点:因为我们用的是32位编译器,所以选择X86,vc11对应的是VS2012编译器,vc10对应的是vs2010编译器,vc12对应的是vs2013
上图:
马上就要大功告成了,小伙伴们不要激动,要耐心。先不要急着把属性界面关掉嘛,那么心急干嘛!留着它!
第四步配置动态链接库
还是刚刚那个属性界面,就是上面那个界面嘛,看到没,【链接器】有吗?没有的话你告诉我,我保证不打死你。打开【链接器】—【输入】—【附加依赖项】在那里面添加动态链接库:下面的文字你可以复制:手写我怕你出错
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
废话少说上图:
要是Opencv是别的版本的,只要把249替换为对应版本的就ok如配的是Opencv-2.4.8
对应的是
opencv_ml248d.lib
opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_objdetect248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_nonfree248d.lib
opencv_ocl248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_videostab248d.lib
opencv_objdetect248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_nonfree248.lib
opencv_ocl248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_superres248.lib
opencv_videostab248.lib
opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248.lib
好了你可以点击【应用】—【确定】
红色文字不用自己输入,你可以某度,某歌,(杜绝广告),有的是那些库,当然你可以复制我上面写的。只要按照我的命名规则替换就ok。
最后一步:测试程序
现在很是激动呀,来来来复制一段代码,简单的,不用复杂。
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片(测试图)
Mat img=imread("测试图.jpg");
// 创建一个名为 "测试图"窗口
cvNamedWindow("测试图");
// 在窗口中显示测试图
imshow("测试图",img);
// 等待8000 ms后窗口自动关闭
waitKey(8000);
}
只是为了测试一下配置是否成功,所以先不管代码的具体含义,复制进去就好了;
记得在你的图片命名必须和程序中一致,图片放置的位置路径要在工程下面,否则会出现异常报错:
楼主当时把图片放在E:VS2012_projectfirst_try下面时,报错为
后经深思熟虑,查阅文献,各位博主的博客,发现正确的路径应该是
E:VS2012_projectfirst_tryfirst_try
把图片存放路径一调,就正常了。出现了我美丽的天坛图片
还有在其他一些博主的博客中也有一些报错的解决方案,这里不一一赘述,附上一位牛人的博客链接:http://blog.csdn.net/huang9012/article/details/21811129
以上是我的配置学习过程,如有不足之处欢迎批评指正,原创作品,转载请注明出处!谢谢!后续的学习总结会陆续推出!欢迎广大爱好者交流!