由于大三以来一直在学路由交换和Linux方面,所以Coding能力大幅下降,加上毕设老师指定了一个完全不会的题目,恍如晴天霹雳,硬着头皮接下了任务,查阅了相关资料以后暂定使用OpenCV+VS2013来完成这个毕设,苦于C++在校根本没学_(:з」∠)_,又是霸王硬上弓,本篇文章可能显得十分小白,请谅解
本随笔随着完成进度的更新而更新
一:环境
Win10+VS2013+OpenCV 3.0
二:下载与安装
OpenCV 3.0下载地址:https://opencv.org/releases.html
(由于网上大部分关于OpenCV配置大多数是2.4.1和3.0了,所以查资料的时候为了避免没必要的问题我配置的环境还是OpenCV3.0)
VS自己网上找吧,激活码一大把_(:з」∠)_
三: 配置环境变量
之前配置过JAVA的应该都知道需要配置环境变量
新增环境变量:OpenCV 地址为你将OpenCV解压的地址:
配置PATH环境变量,在PATH中加入:
%OPENCV%\x86\vc12\bin
%OPENCV%\x64\vc12\bin
为了适应Win32和x64平台之间的切换,所以同时添加了两个bin目录(然而我在使用X64测试的时候出现了BUG,问题之后说)
注:环境变量不生效请重启
(注:此处配置方法有多种,由于配置反复不成功因此最后成功时俩种方法都有涉及,但本质上只需要配置一种即可,在下面将俩种方法都列出,可以都看看)
OpenCV配置文件opencv300.props
新建一个后缀为.props的属性文件,然后将下面的配置代码复制进去
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <IncludePath>$(OPENCV)\include;$(OPENCV)\include\opencv;$(OPENCV)\include\opencv2;$(IncludePath)</IncludePath> <LibraryPath Condition="‘$(Platform)‘==‘Win32‘">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="‘$(Platform)‘==‘x64‘">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="‘$(Configuration)‘==‘Debug‘"> <AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies> <AddtionalLibraryDirectories>%(AddtionalLibraryDirectories)</AddtionalLibraryDirectories> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup> <Link Condition="‘$(Configuration)‘==‘Release‘"> <AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies> <AddtionalLibraryDirectories>%(AddtionalLibraryDirectories)</AddtionalLibraryDirectories> </Link> </ItemDefinitionGroup> <ItemGroup /> </Project>
之后进入VS2013 选择Win32控制台应用程序,并且之后选择空白工程
之后 视图-其他窗口-属性管理器 将上面的属性表给添加上去
之后新建一个main.cpp工程,测试是否成功
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main() { Mat image; char* location = "C:/Users/Yeung/Desktop/QQ图片20171226163741.jpg"; //这里的路径也可以使用相对路径,若使用相对路径,test.jpg文件应该放在main.cpp所在文件夹下 image = imread(location, IMREAD_COLOR); // Read the file if (!image.data) // Check for invalid input { cout << "Could not open or find the image" << std::endl; system("pause"); return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display. imshow("Display window", image); // Show our image inside it. waitKey(0); // Wait for a keystroke in the window system("pause"); return 0; }
如果配置成功下面就不用看了。。。。
成功界面:
我是在这里报了 远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行这个错误,关闭防火墙以后错误消失
_______________________________________
如果还是没有成功,可以尝试以下操作:
VC++目录,包含目录:
添加:
D:\opencv3.0\opencv\build\include\opencv2
D:\opencv3.0\opencv\build\include\opencv
D:\opencv3.0\opencv\build\include
添加你自己opencv3.0相对应的opencv2,opencv,include文件路径
库目录:
D:\opencv3.0\opencv\build\x64\vc12\staticlib
D:\opencv3.0\opencv\build\x64\vc12\lib
添加你自己opencv3.0相对应的lib文件路径
链接器,输入,附加依赖项添加:
opencv_world300.lib
opencv_world300d.lib
之后再运行应该是能正常运行了
这里算是将OpenCV在VS当中配置成功
没有解决的问题:
X64位运行的时候会报错,Win32正常运行,网上查阅没有解决
参考链接:
http://blog.csdn.net/desti5/article/details/39012343
http://blog.csdn.net/u010009145/article/details/50756751
图像识别相关链接:
《Mastering Opencv ...读书笔记系列》车牌识别(I)
http://blog.csdn.net/jinshengtao/article/details/17883075
《Mastering Opencv ...读书笔记系列》车牌识别(II)
http://blog.csdn.net/jinshengtao/article/details/17954427