openCV4的環(huán)境搭建

我的 openCV 圖像深度學(xué)習(xí)教程
作者:吳甜甜
個(gè)人博客網(wǎng)站:wutiantian.github.io
環(huán)境搭建

此處,我以 “編譯平臺(tái) VS2017 + 開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù) openCV4 + 插件 ImageWatch”為例
為什么選擇“Visual studio”?
為 Windows 下用戶設(shè)計(jì)程序,所以用“微軟”公司自家的軟件比較專業(yè),同平臺(tái)調(diào)試更直接方便。windows 操作系統(tǒng)是能把“簡(jiǎn)單的事情變得更簡(jiǎn)單”,所以適合輕量級(jí)的應(yīng)用程序開(kāi)發(fā)。
VS2017軟件安裝(不占用C盤(pán)空間方法)
Visual studio2017是穩(wěn)定的編譯運(yùn)行C++環(huán)境。盡管2019年出了新款,但是有較多幺蛾子。
然而官網(wǎng)的2017只提供在線下載方式,導(dǎo)致下載的緩存都在C盤(pán)!
第一步:下載軟件安裝程序Visual Studio Installer
平常的安裝方式,不論是在線安裝還是下載的離線安裝包,都會(huì)在安裝過(guò)程中將vs2017的安裝包保存在C:\ProgramData\Microsoft\VisualStudio\Packages
文件夾下并占用大量的空間(安裝多少,占用多少,即使你不將VS裝在C盤(pán))。
下載地址:https://www.jb51.net/softs/539119.html
腳本之家:微軟Visual Studio 2017正式版 15.8 (專業(yè)版) 官方簡(jiǎn)體中文版(附序列號(hào))
軟件大?。?.09MB
注意:安裝好后,仍然不要?jiǎng)h除Visual Studio Installer,因?yàn)楹竺嫒绻b“組件”出現(xiàn)問(wèn)題還得靠它打補(bǔ)??!
第二步:打開(kāi)vs_professional.exe
打開(kāi)這個(gè)文件,會(huì)自動(dòng)的在系統(tǒng)上安裝一個(gè)Visual Studio Installer。打開(kāi)vs_professional.exe,程序運(yùn)行到這一步就把程序關(guān)掉。
關(guān)閉后,會(huì)在C:\ProgramData\Microsoft\VisualStudio下創(chuàng)建一個(gè)Packages。
第三步:刪除多余的文件
把這個(gè)Packages文件夾刪掉(如果不刪除,否則創(chuàng)建軟鏈接時(shí)會(huì)報(bào)錯(cuò):當(dāng)文件已存在時(shí),無(wú)法創(chuàng)建該文件)。
第四步:新建文件夾,再創(chuàng)建軟連接
新建文件夾用來(lái)存儲(chǔ)軟件緩存包?D:\vs2017offline
以管理員身份打開(kāi)命令提示符cmd,運(yùn)行下邊代碼。注意(D:\vs2017offline 是你下載的那個(gè)文件夾的位置。)
如果輸入命令正確,會(huì)提示?為C:\ProgramData\Microsoft\VisualStudio\Packages <<===>> D:\vs2017offline 創(chuàng)建的符號(hào)鏈接
第五步:安裝vs2017
之前安裝了一個(gè) Visual Studio Installer ,打開(kāi)這個(gè)軟件,就可以安裝自己想要的功能了。安裝時(shí)所有需要的組件都會(huì)秒下載,并且不會(huì)占用C盤(pán)的空間
注意:安裝過(guò)程中,你可能還會(huì)不放心,去看看C:\ProgramData\Microsoft\VisualStudio下面有沒(méi)有文件占用,此時(shí)右擊文件夾屬性會(huì)顯示軟鏈接地址,就對(duì)了。你可能還會(huì)疑惑旁邊怎么有700KB的`C:\ProgramData\Microsoft\VisualStudio\Setup`正常的,不用擔(dān)心,就這么個(gè)大小不會(huì)變。
注意:在Visual Studio的勾選 默認(rèn)安裝的情況下,有文件默認(rèn)是沒(méi)有勾選的,也就是默認(rèn)不安裝的。

如果不勾選,C++文件編譯時(shí)會(huì)一堆報(bào)錯(cuò)!
第六步:激活KEY:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
注意:安裝好后的C盤(pán)仍然會(huì)有42MB的內(nèi)容,千萬(wàn)不要?jiǎng)h除,新建工程會(huì)報(bào)錯(cuò)!
vs2017需要聯(lián)網(wǎng)安裝,有的時(shí)候還可能要重裝系統(tǒng)
openCV4安裝的過(guò)程->自解壓程序
opencv各個(gè)版本之間的選擇
opencv是開(kāi)源庫(kù)文件,有社區(qū)在定期維護(hù)與增加內(nèi)容。庫(kù)文件是可以個(gè)人修改的,原則上不是有太大影響,但使用的各種編譯軟件經(jīng)常升級(jí)會(huì)導(dǎo)致舊版本不再維護(hù),所以最好還是和軟件一樣使用較新的穩(wěn)定版本。
openCV4 里面的 include 頭包含文件下只有一個(gè)文件夾:openCV2,也就是沒(méi)有再增加頭文件的內(nèi)容,保持2版本狀態(tài)。
通過(guò) opencv 各個(gè)版本的推出,目錄文件的命名,可以看出時(shí)代需求的變化越來(lái)越追求技術(shù)落地。
例如到openCV410版本時(shí),目錄源碼有 C++、java、python 三種語(yǔ)言格式 。
opencv庫(kù)的文件夾內(nèi)容
openCV文件夾下
build預(yù)編譯文件
????????????????????bin
????????????????????etc
????????????????????include???? 類庫(kù)頭文件【1】在VS中配置環(huán)境時(shí)需要
??????????????????? java
????????????????????python
????????????????????x86??????????? vc15?????? bin??????????? dll 動(dòng)態(tài)庫(kù)文件【2】
??????????????????????????????????????????????????????????? ? ? ? ? ? lib 靜態(tài)庫(kù)文件【3】
sources源代碼文件
vc11表示VS2012;vc14表示VS2015;vc15? 代表 Microsoft Visual Studio2017。
openCV環(huán)境文件【三構(gòu)建】
將3個(gè)文件放到新建文件夾“openCV xxx”中。假設(shè)【三構(gòu)建】文件夾路徑為 D:/opencv/openCV400
環(huán)境變量配置
立即生效法
openCV 自構(gòu)建的 bin 文件下的 dll 文件直接拷貝,放置到 c :/windows/syswow64 或者 C:\Windows\System32 (我64位機(jī)VS選擇64的Debug模式是需要放置到該文件夾下才生效?。?/p>
重啟生效法
配置 bin文件的 PATH 路徑 。
屬性管理器【三添加】
每次新建工程都要重新配置,其實(shí)不用這樣麻煩,可以一勞永逸。
(1)新建項(xiàng)目:打開(kāi)VS,文件->新建->項(xiàng)目->空項(xiàng)目。
(2)新建cpp源文件:源文件->添加->新建項(xiàng)->C++文件->添加
(3)菜單欄屬性配置:視圖->屬性管理器
注意:首次需要2次配置屬性【三修改】分別在菜單的屬性管理器、項(xiàng)目的屬性。
在屬性管理器中進(jìn)行第一次配置,就相當(dāng)于進(jìn)行了通用的配置過(guò)程。
【1】include文件配置
解決方案的項(xiàng)目名,右擊屬性 -> VC++ 目錄 -> 包含目錄 ->添加" D:/opencv/openCV400/include;"
【2】lib庫(kù)目錄配置
解決方案的項(xiàng)目名,右擊屬性 -> VC++ 目錄 -> 庫(kù)目錄 ->添加" D:/opencv/openCV400/lib;"
【3】鏈接器配置
解決方案的項(xiàng)目名,右擊屬性 -> 鏈接器 -> 輸入 -> 附加依賴項(xiàng) ->添加 lib的 debug 項(xiàng)目“opencv_ts300d.lib;opencv_world300d.lib”
以上三步修改后,修改行均會(huì)變粗并且加黑,以方便識(shí)別。
以上三步的配置路徑可能因?yàn)閺?fù)制路徑而產(chǎn)生錯(cuò)誤,請(qǐng)用鼠標(biāo)點(diǎn)擊設(shè)置添加文件夾方式層層選擇進(jìn)入到目錄下!
為了方便與書(shū)中同步,因?yàn)闀?shū)中的舊版本項(xiàng)目文件多,用來(lái)完整闡述,請(qǐng)讀者安裝最新版本時(shí)做適當(dāng)?shù)闹R(shí)遷移,或者觀看我的 B 站免費(fèi)視頻講解。
備查的附加說(shuō)明(可不看)
“包含目錄”與“附加包含目錄”的區(qū)別是:全局還是當(dāng)前
“VC++目錄” 設(shè)置“包含目錄”:全局設(shè)置,對(duì)所有項(xiàng)目默認(rèn)生效。
“連接器”->“常規(guī)”->“附加包含目錄”:用于當(dāng)前項(xiàng)目,對(duì)其他項(xiàng)目沒(méi)有影響。
當(dāng)需要對(duì)某工程添加目錄時(shí),通常情況下,都是在“附加包含目錄”和“附加庫(kù)”中添加的。
【三修改】的應(yīng)用:如何使用一個(gè)庫(kù)
附加包含目錄->添加工程的頭文件目錄
項(xiàng)目->屬性->配置屬性->c/c++->常規(guī)->附加包含目錄:加上頭文件的存放目錄。
附加庫(kù)目錄->添加文件引用的 lib 靜態(tài)庫(kù)路徑
項(xiàng)目->屬性->配置屬性->鏈接器->常規(guī)->附加包含目錄:加上 lib 文件的存放目錄
附加依賴項(xiàng)->添加工程引用的 lib 文件名
項(xiàng)目->屬性->配置屬性->鏈接器->輸入->附加依賴項(xiàng):加上 lib 文件名
當(dāng)需要向項(xiàng)目中添加 .dll動(dòng)態(tài)庫(kù)時(shí),知己將需要添加的 .dll文件拖拽到項(xiàng)目生成的 .exe 所在的文件夾即可?!緝?yōu)先采用統(tǒng)一目錄下面的 dll 文件】
項(xiàng)目->屬性->配置屬性->鏈接器->常規(guī)->輸出目錄,可以查看 exe 生成在哪個(gè)目錄下。
Debug 調(diào)試版本 與 Release發(fā)布版本
Debug 調(diào)試版本 與 Release發(fā)布版本 的區(qū)別在于:是否含有調(diào)試信息。
DebugRelease包含調(diào)試信息,并且不作任何優(yōu)化,便于程序員調(diào)試程序。代碼最小和運(yùn)行速度最快,以便用戶很好地使用。注意:VS2017 菜單欄下有“解決方案配置”,注意F5運(yùn)行時(shí),選擇“Debug”模式。
lib下的文件
opencv_ts300.lib8,664kB沒(méi)有加dopencv_ts300d.lib11,764kB加“d”是debug項(xiàng)目里的opencv_world300.lib1,661kB
opencv_world300d.lib1,666kB
注意openCV3以后把"d"文件合并到一個(gè)文件里面了。
微軟圖像插件 ImageWatch
可用于調(diào)試時(shí)顯示和監(jiān)視圖像變量。
VS2017菜單欄:工具->擴(kuò)展和更新->聯(lián)機(jī)->搜索:Image Watch 2017
組件大?。?.3MB
下載好后,關(guān)閉 VS2017 軟件就能自動(dòng)安裝。
下載 Error 報(bào)錯(cuò):如果無(wú)法安裝組件,用 Visual Studio Installer 安裝程序的“自動(dòng)修復(fù)”功能,自動(dòng)打補(bǔ)??!