版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、【opencv 入門教程之一】 安裝 opencv:opencv2.4.8 或opencv2.4.9+vs開發(fā)環(huán)境配置分類: 【opencv】2014-02-24 11:12 37827 人閱讀 評論(172) 保藏 舉報opencvvs2010c+名目(?)+本系列文章由淺墨_毛星云 出品,轉(zhuǎn)載請注明出處。文章鏈接: 作者:毛星云(淺墨) 微博: 郵箱: happylifemxy知乎: 寫作當(dāng)前博文時配套使用的 opencv 版本: 2.4.8(2014 年 4 月 28 更新 2.4.9 的配置。2014 年 6 月 11 日第 5 次修訂本文完畢)opencv2.4.9 和 2.4.8
2、的配置幾乎一樣,唯一的區(qū)分在下文中的第五步, 鏈接庫的配置,把對應(yīng)的 248 改成 249 即可。由于讀研期間的爭辯方向是圖像處理,所以淺墨這段時間閉門爭辯了很多opencv 和圖像處理相關(guān)的學(xué)問與內(nèi)容。眼看自己積存到肯定的程度了,于是打算開頭開設(shè)這個opencv 系列專欄,總結(jié)自己所學(xué),也共享學(xué)問給大家。好了,這篇文章作為 opencv 的啟程篇,自然少不了先系統(tǒng)地介紹 opencv 開發(fā)環(huán)境的配置。淺墨前后經(jīng)受過 opencv2.4.6 ,opencv2.4.7 ,opencv2.4.8 這三個版本的配置,有時候還要涉及到三個版本之間的轉(zhuǎn)換,所以還是對opencv 的配置有肯定的理解的,期
3、望自己的一點(diǎn)拙見能幫到大家。還是先放出待會兒的測試用圖:那么,開頭吧。1. 下載和安裝 opencvsdkvs2010 不用說,確定都安裝了吧。來說說當(dāng)前最新的opencv 版本 2.4.8(2014 年 2 月24 日),2.4.9 (2014 年 4 月)的下載和安裝。與其說是安裝,不如叫解壓更加合適,由于我們下載的 exe 安裝文件就是一個自解壓程序而已。在官網(wǎng):/上找到 opencvwindows 版下載下來。下載完后得到文件 opencv2.4.x ,雙擊后會提示解壓到某個地方,推舉放到d:program files下,比如 d:programfile
4、s ,(由于 opencv 項(xiàng)目文件打包的時候,根名目就是opencv,所以我們不需要額外的新建一個名為opencv 的文件夾,然后再解壓,那是多此一舉的事情)然后點(diǎn)擊 extract 按鈕。等一段時間,opencv2.4.8 近 3 個多 g 的文件就解壓到了 d:programfiles 下。其中,build 里面是使用 opencv 相關(guān)的文件,我們假如只是使用 opencv 的話呢,就只用管 build 里面的內(nèi)容。下面的 sources 文件夾你嫌煩,你嫌占硬盤空間,完全可以刪掉。但是需要留意的是,官方示例集,也就是samples 文件夾里面的示例程序,在 sources 文件夾里面
5、躺著呢,所以,假如真是要刪的話,還是想清楚哦。sources 里面是源代碼??梢灾苯硬榭?。如何生成sln 解決方案淺墨在這篇博文中有具體講到:【opencv入門教程之七】 玩轉(zhuǎn) opencv 源代碼:生成opencv 工程解決方案與 opencv 源碼編譯2. 配置環(huán)境變量這步的配置方法如下:【計算機(jī)】->【(右鍵)屬性】->【高級系統(tǒng)設(shè)置】->【高級(標(biāo)簽)】->【環(huán)境變量】->“雙擊”系統(tǒng)變量中的 path->在變量值里面添加相應(yīng)的路徑。如圖:<1><2><3><4><5>對于 32 位系統(tǒng),就
6、添加:”; opencvbuildx86vc10bin”(和之前的就有有的環(huán)境變量用英文的分號“;”進(jìn)行分隔)而對于 64 位系統(tǒng),可以兩個都添加上: ”; opencvbuildx86vc10bin”和” opencvbuildx64vc10bin”,這樣,到時候才可以在編譯器 win32 和 x64 中來回切換都吃得開,游刃有余例如,淺墨的就是d:programfilesopencvbuildx64vc10bin;d:program filesopencvbuildx86vc10binps: 有童鞋親測說 64 位系統(tǒng)也只需添加” opencvbuildx86vc10bin”即可,大家不妨
7、一試。注:變量值實(shí)際為bin 文件夾的路徑;d 表示 opencv 安裝于d 盤;x64 表示運(yùn)行系統(tǒng)環(huán)境位 64 位系統(tǒng),若安裝于32 位系統(tǒng),應(yīng)為x86;vc10 表示編譯環(huán)境為 microsoftvisual studio2010 ;變量添加完成后最好注銷系統(tǒng),才會生效。3. 工程包含(include)名目的配置之前看過的好多博文都說“每次新建工程都要重新配置”,其實(shí)不用這樣麻煩的。 首先是在 visualstudio 里面新建一個把握臺應(yīng)用程序,最好是勾好空項(xiàng)目那個勾。(考慮到看這篇博文的童鞋很少接觸vs,那么淺墨在這里將過程具體截圖出來淺墨2014 年 6 月 11 日注)<1
8、>打開 visualstudio ,新建 win32 把握臺項(xiàng)目,取個名字,比如叫 test1,然后選好路徑, 點(diǎn)確定.<2> 點(diǎn)一次“下一步”。<3> 勾上空項(xiàng)目那個勾。<4>接著在解決方案資源治理器的【源文件】處右擊->添加->新建項(xiàng),預(yù)備在工程中新建一個 cpp 源文件。<5>選定 c+源文件,取個名字,比如叫“main”,然后點(diǎn)【添加】,那么,一個新的cpp 文件就添加到了工程中。<6>看過淺墨之前 directx 配置的相關(guān)博文的朋友們應(yīng)當(dāng)都知道,有一招叫屬性治理器。在屬性治理器中進(jìn)行一次配置,就相當(dāng)于進(jìn)行
9、了通用的配置過程,以后新建的工程就不用再額外的進(jìn)行重新配置了。在菜單欄里面點(diǎn)<視圖>-<屬性治理器>,那么就會在 visualstudio 中多出一個屬性治理器工作區(qū)來。<7>在新消滅的“屬性治理器”工作區(qū)中,點(diǎn)擊項(xiàng)目->debug|win32->microsoft.cpp.win32.userdirectories(右鍵屬性,或者雙擊)即可打開屬性頁面。<8>打開屬性頁面后,就是一番配置了。首先是在【通用屬性】 ->【vc+名目】 ->【包含名目】中添加上d:programfilesopencvbuildinclude
10、d:programfilesopencvbuildincludeopencv d:programfilesopencvbuildincludeopencv2 這三個名目。固然,這是之前把 opencv 解壓到 d:programfiles 下的狀況。實(shí)際的路徑還要看你自己把 opencv 解壓到了哪個名目下,依據(jù)你的實(shí)際狀況來調(diào)整。4. 工程庫(lib)名目的配置其實(shí)這步和上一步差不多,屬性治理器”工作區(qū)中,點(diǎn)擊項(xiàng)目->debug|win32->microsoft.cpp.win32.userdirectories(反鍵屬性,或者雙擊)打開屬性頁面。接著上步,就是在【通用屬性】 -
11、>【vc+名目】 ->【庫名目】中,添加上 d:programfilesopencvbuildx86vc10lib 這個路徑。(最好不要復(fù)制粘貼淺墨給出的路徑,而是自己去預(yù)覽里面指定出來,這樣會精確得多)(感謝小如風(fēng)童鞋,之前給出的路徑 d:programfilesopencvbuildx86vc10lib 里少個空格,直接復(fù)制淺墨給出的上面路徑的童鞋就會消滅“無法打開錯誤 1errorlnk1104: 無法打開文件“opencv_calib3d248.lib”類似的錯誤”,現(xiàn)已更正)淺墨于2014 年 4 月 3 日這里選擇 x86 還是 x64 是一個經(jīng)常令人困惑的問題。固然,
12、對于 32 位操作系統(tǒng),鐵定就是選 x86 了。假如是 64 位操作系統(tǒng),很多童鞋會想固然自作聰慧地選擇x64,其實(shí)不然。正確的理解是這樣的:不管你是 32 位還是 64 位操作系統(tǒng),只用管你用 win32 編譯器還是 x64 編譯器。其實(shí)配置選擇什么跟 64 位還是 32 位系統(tǒng)沒有直接的關(guān)系,而是在于你在編譯你的程序的時候是使用那個編譯器。編譯器選的是 win32,就用 x86編譯器選的是 x64,就用x64。不過一般狀況下,都是用的win32 的 x86 編譯器。所以,無論 32 還是 64 位操作系統(tǒng),配置文件最好都選擇x86 版的另外,這里的 vc10 表示 vs2010,假如是其他
13、版本的 visualstudio ,略微要微調(diào)一下。感謝 jjbomb 童鞋,這里我們補(bǔ)充完整:vc8=visualstudio2005 ,vc9=visualstudio 2008,vc10=visualstudio2010 ,vc11=visualstudio2012 ,vc12=visualstudio 2013。5. 鏈接庫的配置照舊是“屬性治理器”工作區(qū)中,點(diǎn)擊項(xiàng)目->debug|win32->microsoft.cpp.win32.userdirectories(反鍵屬性,或者雙擊)即可打開屬性頁面。【通用屬性】 ->【鏈接器】->【輸入】->【附加的
14、依靠項(xiàng)】對于【opencv2.4.8】,添加如下 248 版本的 lib(這樣的 lib 挨次是:19 個帶 d 的 debug 版的 lib 寫在前面,19 個不帶d 的 release 版的 lib 寫在后面):opencv_ml248d.lib opencv_calib3d248d.lib opencv_contrib248d.libopencv_core248d.lib opencv_features2d248d.lib opencv_flann248d.lib opencv_gpu248d.lib opencv_highgui248d.lib opencv_imgproc248d.l
15、ib 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.libopencv_objdetect248.lib opencv_ts248.lib opencv_video248.lib opencv_nonfree
16、248.lib opencv_ocl248.libopencv_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_legacy2
17、48.lib opencv_ml248.lib對于【opencv2.4.9】,添加如下 249 版本的 lib(這樣的 lib 挨次是:19 個帶 d 的 debug 版的 lib 寫在前面,19 個不帶d 的 release 版的 lib 寫在后面):opencv_ml249d.lib opencv_calib3d249d.lib opencv_contrib249d.lib opencv_core249d.lib opencv_features2d249d.libopencv_flann249d.lib opencv_gpu249d.lib opencv_highgui249d.lib o
18、pencv_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.libopencv_objdetect249.lib opencv_ts249.lib opencv_video249
19、.lib opencv_nonfree249.lib opencv_ocl249.lib opencv_photo249.lib opencv_stitching249.libopencv_superres249.libopencv_videostab249.libopencv_calib3d249.libopencv_contrib249.libopencv_core249.libopencv_features2d249.libopencv_flann249.libopencv_gpu249.libopencv_highgui249.libopencv_imgproc249.libopenc
20、v_legacy249.libopencv_ml249.lib需要留意的是,所粘貼內(nèi)容即為之前我們解壓的opencv 名目d:opencvbuildx86vc10lib 下全部lib 庫文件的名字;其中的248 代表我們的opencv 版本為2.4.8,若是其他版本的配置則在這里要進(jìn)行相應(yīng)的更改,比如說2.4.6 版的opencv,那么這里的 opencv_calib3d248d.lib 就要改成 opencv_calib3d246d.lib 了.debug 文件庫名有d 結(jié)尾,release 沒有,如 opencv_ts248d.lib(debug 版本的 lib) 和 opencv_ts2
21、48.lib(release 版本的 lib)不過我一般是在這里把帶d 和不帶d 的統(tǒng)統(tǒng)寫在這里,由于這里是以后創(chuàng)建全部工程時都會繼承的公共屬性。另外留意:依據(jù)如上的這種方式來配置,或許會消滅 debug 下可以運(yùn)行但是 release 下不能運(yùn)行的狀況(由于字符串讀取問題引起的諸如圖片載入不了,報指針越界,內(nèi)存錯誤等等),這算是 opencv 自 2.4.1 以來的一個 bug。解決方案:想在 release 模式下運(yùn)行出程序結(jié)果,在工程的release模式下,將不帶d 的 lib(全部是 19 個)添加到【項(xiàng)目】->【屬性】(留意這樣打開的是當(dāng)前工程的屬性頁,我們只需在這里將rele
22、ase 版(即不帶d)的相關(guān) lib 添加進(jìn)去)->【配置屬性】->【鏈接器】->【輸入】->【附加的依靠項(xiàng)】下即可。淺墨2014 年 3 月 17 日注&2014 年 6 月 11 日更新類似錯誤如圖:6. 在 windows 文件夾下加入 opencv 動態(tài)鏈接庫ps:經(jīng)過 hellofuturecyj 同學(xué)提示,假如配置環(huán)境變量那步配置精確, 且配置之后經(jīng)過重啟,就沒有進(jìn)行這步配置的必要了。即做完上面第五 步的配置,重啟一次,就可以直接跳到第七步,進(jìn)行測試,看出不出圖。固然,假如需不重啟而馬上來看配置的結(jié)果,就可以試試這里的方式。淺墨 2014 年 6 月
23、 16 日注這一步是各種介紹 opencv 的配置的相關(guān)博文中都沒寫出來的。依據(jù)這些博文配置出來的環(huán)境,在運(yùn)行基于 opencv 的程序的時候,往往會得到這樣類似的結(jié)果:這種問題最簡潔粗暴的方法,是把相關(guān)的dll 都拷貝到 windows 操作系統(tǒng)的名目下。假如你的 windows 安裝在c 盤,那么路徑就是 c:windows。依據(jù)之前我的 opencv 的存放環(huán)境,這些 dll 存放在d:programfilesopencvbuildx86vc10bin 名目下。到這個名目下,【alt+a】全選,【alt+c】拷貝,然后轉(zhuǎn)到c:windows 下面,【alt+v】復(fù)制,簡潔粗暴地就完成了。
24、恩,環(huán)境配置大功告成,我們來測試一下成果吧7.最終的測試就用載入并顯示一張圖片到窗口的程序,用于我們的配置測試吧。新建一個空項(xiàng)目的把握臺應(yīng)用程序,新建一個cpp 文件,然后粘貼如下代碼:cpp view plaincopyprint?..9.#include<iostream>#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp>using namespace cv;int main()9
25、./ 讀入一張圖片(玩耍原畫)mat img=imread(“pic.jpg“);/ 創(chuàng)建一個名為 “玩耍原畫“窗口cvnamedwindow(“玩耍原畫“);/ 在窗口中顯示玩耍原畫imshow(“玩耍原畫“,img);/ 等待 6000 ms 后窗口自動關(guān)閉waitkey(6000);放置一張名為 pic.jpg 的圖片到工程名目中,然后點(diǎn)擊“運(yùn)行“按鈕,假如配置成功,就不會報錯,得到預(yù)想的運(yùn)行結(jié)果:為了大家的考慮,還是把工程文件發(fā)一下吧,雖然這次只有簡潔的幾句代碼:【opencv+vs2010 開發(fā)環(huán)境配置 測試用例 by淺墨】下載7. 可能遇到的問題和解決方案呼,生活不行能是一帆風(fēng)順的
26、,我們的配置過程也是。淺墨在幾次的配置過程中,消滅了如 下的幾種典型問題,我信任你可能會消滅,就在這里集中列舉一下吧,期望能為大家解惑:1. 找不到 core.h消滅這個問題是由于 include 的時候馬虎大意了。假如你的版本是 2.4.6。在這個版本下,opencv 根文件夾下面就有個 include,但我們配置的時候假如包含的是他就坑爹了。正確的應(yīng)當(dāng)填 build 里面的那個 include。2. 無法解析的外部命令這個問題其實(shí)上面有過解釋了,不管你是32 位還是 64 位操作系統(tǒng),只用管你用win32 編譯器還是 x64 編譯器。其實(shí)配置選擇什么跟 64 位還是 32 位系統(tǒng)沒有直接的關(guān)系,而是在于你在編譯你的程序的時候是使用那個編譯器。編譯器是 win32,就用 x86編譯器是 x64,就用 x64。不過一般狀況下,都是用的 win32 的 x86 編譯器。所以, 無論 32 還是 64 位操作系統(tǒng),配置文件最好都選擇x86 版的。3. 關(guān)于形如-errorlnk2005:xxx已經(jīng)在 msvcrtd.lib (msvcr90d.dll)中定義消滅這個問題,把靜態(tài)庫不包含就行了。4. 應(yīng)用程序無法正常啟動 0xc00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球自動包餃子機(jī)行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球丙烷氣體燃燒器行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球便攜式應(yīng)急電源發(fā)電機(jī)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國廢物回收分類機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球X射線防護(hù)面罩行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球同軸微導(dǎo)管系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國高電壓鈷酸鋰正極材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球水性涂布紙吸管行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球農(nóng)業(yè)機(jī)器自動方向?qū)Ш皆O(shè)備行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球光學(xué)對準(zhǔn)服務(wù)行業(yè)調(diào)研及趨勢分析報告
- 醫(yī)院投訴糾紛及處理記錄表
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗(yàn)方法
- 【深度教學(xué)研究國內(nèi)外文獻(xiàn)綜述2100字】
- 牽引管道孔壁與管道外壁之間注漿技術(shù)方案
- 新人教版四年級下冊數(shù)學(xué)教材解讀課件
- 竣工資料封面
- 膿毒血癥指南
- 中國航天知識
- 安徽華納化學(xué)工業(yè)有限公司年產(chǎn)1000噸均苯四甲酸二酐、300噸潤滑油助劑項(xiàng)目環(huán)境影響報告書
- YY 9706.230-2023醫(yī)用電氣設(shè)備第2-30部分:自動無創(chuàng)血壓計的基本安全和基本性能專用要求
- 第8課紅樓春趣同步練習(xí)(含答案)
評論
0/150
提交評論