我的畢設-基於OpenCV的圖像車牌識別(I)
由於大三以來一直在學路由交換和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
我的畢設-基於OpenCV的圖像車牌識別(I)