Windows系統安裝編譯OpenCV(2)

此處的說明在Windows 7 SP1上進行了測試汗茄。 不過秸弛,它也適用于任何其他相對現代版本的Windows操作系統。 如果您在按照下述步驟操作后遇到錯誤洪碳,請隨時留言递览。 我們會盡力幫助您。

Installation by Using the Pre-built Libraries (使用預先構建的庫進行安裝)

  1. 啟動首選的Web瀏覽器瞳腌,然后轉到Sourceforge上的頁面绞铃。
  2. 選擇要使用的構建并下載它。
  3. 確保您擁有管理員權限嫂侍。 解壓縮自解壓存檔儿捧。
  4. 您可以在所選路徑中檢查安裝,如下所示挑宠。
OpenCV_Install_Directory.png
  1. 完成安裝最后一步菲盾,請轉到設置OpenCV環(huán)境變量并將其添加到系統路徑部分。

安裝git-bash(版本版本必須大于等于 2.14.1)和cmake(安裝版本需要大于等于 3.9.1)

  1. 您必須下載cmake(版本> = 3.9.1)并安裝它各淀。 您必須在安裝期間將cmake添加到PATH變量

  2. 您必須安裝git-bash(版本> = 2.14.1)懒鉴。 安裝期間不要將git添加到PATH變量

  3. 運行git-bash前,你可以手動直接創(chuàng)建opencv臨時目錄文件夾碎浇;例如:c:/ lib中構建opencv和opencv_contrib

  4. 你也可以直接在git命令行中輸入以下命令(如果文件夾不存在):

     mkdir /c/lib
     cd /c/lib
    
  5. 把以下腳本內容保存在根目錄下(如c:/ lib)疗我,命名為:installOCV.sh,保存此腳本

#!/bin/bash -e
myRepo=$(pwd)
CMAKE_CONFIG_GENERATOR="Visual Studio 14 2015 Win64"
if [  ! -d "$myRepo/opencv"  ]; then
    echo "cloning opencv"
    git clone https://github.com/opencv/opencv.git
    mkdir Build
    mkdir Build/opencv
    mkdir Install
    mkdir Install/opencv
else
    cd opencv
    git pull --rebase
    cd ..
fi
if [  ! -d "$myRepo/opencv_contrib"  ]; then
    echo "cloning opencv_contrib"
    git clone https://github.com/opencv/opencv_contrib.git
    mkdir Build
    mkdir Build/opencv_contrib
else
    cd opencv_contrib
    git pull --rebase
    cd ..
fi
RepoSource=opencv
pushd Build/$RepoSource
CMAKE_OPTIONS='-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF     -DBUILD_DOCS:BOOL=OFF  -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON'
cmake -G"$CMAKE_CONFIG_GENERATOR" $CMAKE_OPTIONS -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo"/install/"$RepoSource" "$myRepo/$RepoSource"
echo "************************* $Source_DIR -->debug"
cmake --build .  --config debug
echo "************************* $Source_DIR -->release"
cmake --build .  --config release
cmake --build .  --target install --config release
cmake --build .  --target install --config debug
popd

在工程配置選項中南捂,建議你使用64位的VS 2015吴裤,具體設置如下:

CMAKE_CONFIG_GENERATOR="Visual Studio 14 2015 Win64"

opencv將安裝在根目錄install文件下(c:/ lib / install中),設置如下:

-DCMAKE_INSTALL_PREFIX="$myRepo"/install/"$RepoSource" "$myRepo/$RepoSource"

其他選項設置如下: no Perf tests, no tests, no doc, no CUDA and no example

CMAKE_OPTIONS='-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF'
  1. 在git命令行中輸入以下命令:

     ./installOCV.sh
    

7.等待執(zhí)行完成,大約是喝兩杯咖啡時間
8.如果你需要更新版本溺健,只需更新:opencv 和 opencv_contrib兩個文件夾麦牺,重新編譯即可

windows系統上編譯OpenCV到底需要安裝那些工具钮蛛,這里有最全面的整理資料

現在,我們將描述完整構建的步驟(使用所有上述框架剖膳、工具和庫)魏颓。如果其中一些不需要支持,您可以直接跳過這一部分吱晒。

Building the library

  1. 安裝可以正常啟動Microsoft Visual Studio
  2. 安裝cmake甸饱,只需按照向導,無需將其添加到路徑中仑濒。 正常選擇默認安裝選項叹话。
  3. 官方網站.下載并安裝最新版本的msysgit。 還有便攜版本墩瞳,您只需要解壓縮即可訪問控制臺版本的Git驼壶。 便攜版對于一般開發(fā)人員來說,這已經足夠了喉酌。
  4. 安裝TortoiseGit热凹。 根據您使用的操作系統類型選擇32位或64位版本。安裝時泪电,找到您的msysgit(如果它不自動執(zhí)行此操作)般妙。 按照向導 - 大多數情況下默認選項都可以。
  5. 在文件系統中選擇一個目錄相速,您可以在其中下載OpenCV庫碟渺。 我建議創(chuàng)建一個具有短路徑且沒有特殊字符的新路徑,例如D:/ OpenCV和蚪。 在本教程中止状,我建議您這樣做。 如果你使用自己的已知的路徑攒霹,你這么做怯疤,也可以。

    a. 將存儲庫克隆到所選目錄催束。 單擊“克隆”按鈕后集峦,將出現一個窗口,您可以從中選擇要從哪個存儲庫下載源文件(https://github.com/opencv/opencv.git)和目錄(D:/OpenCV)抠刺。
    b. 按下“確定”按鈕并保持耐心塔淤,因為存儲庫的下載非常繁重。 這將需要一些時間取決于您的Internet連接速妖。

  6. 在本節(jié)中高蜂,我將介紹如何安裝第三方庫。

    a.下載Python庫并使用默認選項進行安裝罕容。 您將需要其他幾個python擴展备恤。 幸運的是稿饰,安裝所有這些可以通過一個名為Setuptools的好工具自動化。 一次下載并全部安裝露泊。
    b. 安裝Numpy的最簡單方法是從sourceforge頁面下載其二進制文件喉镰。 確保下載并安裝python版本的二進制文件(因此版本為2.7.以上版本)
    c. 對于Intel Threading Building Blocks(* TBB *),下載源文件并將其解壓縮到系統上的目錄中惭笑。 例如:D:/ OpenCV / dep侣姆。 要安裝 Intel Integrated Performance Primitives(* IPP *)和上邊步驟是一樣的。 為了提取壓縮內容沉噩,我建議使用7-Zip應用程序捺宗。

    IntelTBB.png

    d.對于Intel IPP Asynchronous C / C ++下載源文件并設置環(huán)境變量IPP_ASYNC_ROOT。 它應該指向<您的Program Files(x86)目錄> / Intel / IPP Preview */ ipp目錄屁擅。 這里*表示特定的預覽名稱偿凭。
    e.如果是Eigen庫产弹,則再次下載并解壓縮到D:/ OpenCV / dep目錄派歌。
    f. 同上方法安裝OpenEXR.
    g. 對于OpenNI框架,您需要同時安裝開發(fā)版PrimeSensor模塊痰哨。
    h. 對于CUDA胶果,您還需要兩個模塊:最新的CUDA工具包CUDA Tools SDK。 根據您的操作系統斤斧,使用32位或64位設置早抠,使用 complete選項下載并安裝它們。
    i. 在Qt框架的情況下撬讽,您需要自己構建二進制文件 (除非您使用帶有32位編譯器的Microsoft Visual Studio 2008)蕊连。 要執(zhí)行此操作,請轉到Qt Downloads頁面游昼。 下載源文件 (不是安裝程序!!!)
    qtDownloadThisPackage.png

    將它解壓縮到一個很好的短命名目錄甘苍,如D:/ OpenCV / dep / qt /。 然后你需要建立它烘豌。 通過使用開始菜單搜索啟動Visual Studio命令提示符(2010)(或通過開始菜單導航所有程序 - > Microsoft Visual Studio 2010 - > Visual Studio工具 - > Visual Studio命令提示符(2010))载庭。

visualstudiocommandprompt.jpg

現在導航到解壓縮的文件夾,然后使用此控制臺窗口在其中輸入廊佩。 您應該有一個包含Install囚聚,Make等文件的文件夾。 使用dir命令列出當前目錄中的文件标锄。 到達此目錄后顽铸,輸入以下命令:

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools-no-qt3support -no-multimedia -no-ltcg

完成此操作大約需要10-20分鐘。 然后輸入下一個需要更長時間的命令(可以輕松地花費超過一小時):

nmake

在你的操作系統(例子:window 7)上使用以下命令設置Qt環(huán)境變量之后:

  setx -m QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3

另外料皇,使用PathEditor將構建的二進制文件路徑添加到系統路徑谓松。 在我們的例子中簸淀,這是 D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin.

Note

如果您計劃進行Qt應用程序開發(fā),您還可以在此時安裝Qt Visual Studio加載項毒返。 在此之后租幕,您可以在不使用Qt Creator的情況下制作和構建Qt應用程序。 一切都很好地集成到Visual Studio中拧簸。

  1. 現在打開CMake(cmake-gui)劲绪。 您可以再次在開始菜單搜索中輸入它,或從所有程序 - > CMake 2.8 - > CMake(cmake-gui)中獲取它盆赤。 首先贾富,選擇OpenCV庫源文件的目錄(1)。 然后牺六,指定一個目錄颤枪,您將在其中為OpenCV(2)構建二進制文件。


    CMakeSelectBin.jpg

    按Configure按鈕指定要使用的編譯器(和IDE)淑际。 請注意畏纲,如果您可以選擇不同的編譯器來制作64位或32位庫。 選擇您在應用程序開發(fā)中使用的那個春缕。


    CMake_Configure_Windows.jpg

    CMake將啟動并根據您的系統變量嘗試自動定位盡可能多的包盗胀。 您可以在WITH - > WITH_X菜單點(其中X是包縮寫)中修改要用于構建的包。 以下是您可以打開或關閉的當前包的列表:
    CMakeBuildWithWindowsGUI.jpg

選擇要使用的所有軟件包锄贼,然后再次按 Configure按鈕票灰。 為了更簡單地概述構建選項,請確保打開二進制目錄選項下的Grouped選項宅荤。 對于某些軟件包屑迂,CMake可能找不到所有必需的文件或目錄。 在這種情況下冯键,CMake將在其輸出窗口(位于GUI的底部)中拋出錯誤惹盼,并將其字段值設置為未找到的常量。 例如:

CMakePackageNotFoundWindows.jpg

CMakeOutputPackageNotFound.jpg

為此琼了,您需要手動設置查詢的目錄或文件路徑逻锐。然后再按一次 Configure按鈕,看看您輸入的值是否被接受雕薪。這樣做昧诱,直到所有條目都不報錯,并且您不能在GUI的字段/值或輸出部分看到錯誤提示∷現在我想強調一個您肯定會喜歡的選項:ENABLE - > ENABLE_SOLUTION_FOLDERS盏档。OpenCV將創(chuàng)建許多項目,打開這個選項將確保它們被分類在解決方案資源管理器中的目錄中燥爷。如果你問我如果判斷它是否添加成功蜈亩,這是一個必須有的特征懦窘。
CMakeBuildOptionsOpenCV.jpg

此外,您需要選擇要構建的OpenCV的哪些部分:

  • BUILD_DOCS -> 它創(chuàng)建了兩個用于構建OpenCV文檔的項目(將有一個單獨的項目來構建HTML和PDF文件)稚配。 請注意畅涂,這些不是與解決方案一起構建的。 您需要對這些命令進行顯式構建項目命令才能執(zhí)行此操作道川。
  • BUILD_EXAMPLES -> OpenCV附帶了許多示例應用程序午衰,您可以從中學習大多數庫功能。 如果OpenCV在您的計算機上完全正常運行冒萄,這也很容易嘗試臊岸。
  • BUILD_PACKAGE -> 在2.3版本之前,您可以構建一個將構建OpenCV安裝程序的項目尊流。 有了這個帅戒,您可以輕松地在其他系統上安裝OpenCV風格。 對于OpenCV的最新源文件崖技,它會生成一個新項目逻住,只需使用OpenCV源創(chuàng)建一個zip存檔。
  • BUILD_SHARED_LIBS -> 有了這個响疚,您可以控制構建DLL文件(打開時)或靜態(tài)庫文件(* .lib)鄙信。
  • BUILD_TESTS ->OpenCV的每個模塊都有一個分配給它的測試項目瞪醋。 構建這些測試項目也是一種很好的嘗試方法忿晕,模塊也可以在您的系統上按預期工作。
  • BUILD_PERF_TESTS -> 還有許多OpenCV功能的性能測試银受。 如果您擔心性能践盼,請構建它們并運行。
  • BUILD_opencv_python -> 不言而喻宾巍。 創(chuàng)建二進制文件以使用Python語言中的OpenCV咕幻。
    再次按Configure按鈕,確保未報告任何錯誤顶霞。 如果是這種情況肄程,您可以通過按Generat按鈕告訴CMake創(chuàng)建項目文件。 轉到構建目錄并打開創(chuàng)建的OpenCV解決方案选浑。 根據您選擇的上述選項中的多少蓝厌,解決方案可能包含很多項目,因此在啟動時可以容忍IDE效率問題古徒。 現在您需要構建Release和Debug二進制文件拓提。
    ChangeBuildVisualStudio.jpg

最后,您可以查看bin目錄中構建的二進制文件:

OpenCVBuildResultWindows.jpg

對于文檔隧膘,您需要在doxygen項目中為HTML文檔明確發(fā)出構建命令代态。 它將調用Doxygen的做所有的辛勤工作寺惫。 您可以在build / doc / doxygen / html中找到生成的文檔。

要將您在自己的項目中使用的標頭和二進制文件收集到一個單獨的目錄中(類似于預先構建的二進制文件的發(fā)布方式)蹦疑,您需要顯式構建Install項目西雀。

WindowsBuildInstall.png

創(chuàng)建自己的第一個程序Build oneinstall目錄下,且把所有已經編譯好的二進制文件鏈接到此工程中且放在同一個目錄下歉摧,僅在構建 Release 或者 Debug 版本時候使用它
要測試構建蒋搜,只需進入Build / bin / DebugBuild / bin / Release目錄并啟動幾個應用程序,如contours.exe判莉。 如果可以正常啟動運行豆挽,證明你就完成了所有工作。 否則券盅,肯定會出現嚴重錯誤帮哈。 在這種情況下,您應該在我們的問答論壇上與我們聯系锰镀。 如果一切正常娘侍,contours.exe輸出應該類似于下圖(如果使用Qt支持構建):
WindowsQtContoursOutput.png

Note

如果您使用GPU模塊(CUDA庫),請確保您還升級到GPU的最新驅動程序泳炉。 包含(或找不到)nvcuda.dll中的無效條目的錯誤消息主要是由舊的視頻卡驅動程序引起的憾筏。 要測試GPU(如果構建),請運行performance_gpu.exe示例應用程序花鹅。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末氧腰,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子刨肃,更是在濱河造成了極大的恐慌古拴,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件真友,死亡現場離奇詭異黄痪,居然都是意外死亡,警方通過查閱死者的電腦和手機盔然,發(fā)現死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門桅打,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人愈案,你說我怎么就攤上這事挺尾。” “怎么了刻帚?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我掂僵,道長航厚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任锰蓬,我火速辦了婚禮幔睬,結果婚禮上,老公的妹妹穿的比我還像新娘芹扭。我一直安慰自己麻顶,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布舱卡。 她就那樣靜靜地躺著辅肾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪轮锥。 梳的紋絲不亂的頭發(fā)上矫钓,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天腐巢,我揣著相機與錄音,去河邊找鬼既绩。 笑死私杜,一個胖子當著我的面吹牛颜矿,可吹牛的內容都是我干的替废。 我是一名探鬼主播椎镣,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼拍摇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤踏拜,失蹤者是張志新(化名)和其女友劉穎姻锁,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體开皿,經...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡涧黄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了赋荆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笋妥。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窄潭,靈堂內的尸體忽然破棺而出春宣,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布月帝,位于F島的核電站躏惋,受9級特大地震影響,放射性物質發(fā)生泄漏嫁赏。R本人自食惡果不足惜其掂,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潦蝇。 院中可真熱鬧款熬,春花似錦、人聲如沸攘乒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽则酝。三九已至殉簸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沽讹,已是汗流浹背般卑。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爽雄,地道東北人蝠检。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挚瘟,于是被迫代替她去往敵國和親叹谁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容