Windows系統(tǒng)安裝編譯OpenCV(2)

此處的說(shuō)明在Windows 7 SP1上進(jìn)行了測(cè)試。 不過(guò),它也適用于任何其他相對(duì)現(xiàn)代版本的Windows操作系統(tǒng)。 如果您在按照下述步驟操作后遇到錯(cuò)誤,請(qǐng)隨時(shí)留言。 我們會(huì)盡力幫助您。

Installation by Using the Pre-built Libraries (使用預(yù)先構(gòu)建的庫(kù)進(jìn)行安裝)

  1. 啟動(dòng)首選的Web瀏覽器,然后轉(zhuǎn)到Sourceforge上的頁(yè)面。
  2. 選擇要使用的構(gòu)建并下載它。
  3. 確保您擁有管理員權(quán)限。 解壓縮自解壓存檔。
  4. 您可以在所選路徑中檢查安裝,如下所示。
OpenCV_Install_Directory.png
  1. 完成安裝最后一步,請(qǐng)轉(zhuǎn)到設(shè)置OpenCV環(huán)境變量并將其添加到系統(tǒng)路徑部分。

安裝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. 運(yùn)行g(shù)it-bash前,你可以手動(dòng)直接創(chuàng)建opencv臨時(shí)目錄文件夾;例如:c:/ lib中構(gòu)建opencv和opencv_contrib

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

     mkdir /c/lib
     cd /c/lib
    
  5. 把以下腳本內(nèi)容保存在根目錄下(如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

在工程配置選項(xiàng)中,建議你使用64位的VS 2015,具體設(shè)置如下:

CMAKE_CONFIG_GENERATOR="Visual Studio 14 2015 Win64"

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

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

其他選項(xiàng)設(shè)置如下: 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í)行完成,大約是喝兩杯咖啡時(shí)間
8.如果你需要更新版本,只需更新:opencv 和 opencv_contrib兩個(gè)文件夾,重新編譯即可

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

現(xiàn)在,我們將描述完整構(gòu)建的步驟(使用所有上述框架、工具和庫(kù))。如果其中一些不需要支持,您可以直接跳過(guò)這一部分。

Building the library

  1. 安裝可以正常啟動(dòng)Microsoft Visual Studio
  2. 安裝cmake,只需按照向?qū)В瑹o(wú)需將其添加到路徑中。 正常選擇默認(rèn)安裝選項(xiàng)。
  3. 官方網(wǎng)站.下載并安裝最新版本的msysgit。 還有便攜版本,您只需要解壓縮即可訪問(wèn)控制臺(tái)版本的Git。 便攜版對(duì)于一般開(kāi)發(fā)人員來(lái)說(shuō),這已經(jīng)足夠了。
  4. 安裝TortoiseGit。 根據(jù)您使用的操作系統(tǒng)類型選擇32位或64位版本。安裝時(shí),找到您的msysgit(如果它不自動(dòng)執(zhí)行此操作)。 按照向?qū)?- 大多數(shù)情況下默認(rèn)選項(xiàng)都可以。
  5. 在文件系統(tǒng)中選擇一個(gè)目錄,您可以在其中下載OpenCV庫(kù)。 我建議創(chuàng)建一個(gè)具有短路徑且沒(méi)有特殊字符的新路徑,例如D:/ OpenCV。 在本教程中,我建議您這樣做。 如果你使用自己的已知的路徑,你這么做,也可以。

    a. 將存儲(chǔ)庫(kù)克隆到所選目錄。 單擊“克隆”按鈕后,將出現(xiàn)一個(gè)窗口,您可以從中選擇要從哪個(gè)存儲(chǔ)庫(kù)下載源文件(https://github.com/opencv/opencv.git)和目錄(D:/OpenCV)。
    b. 按下“確定”按鈕并保持耐心,因?yàn)榇鎯?chǔ)庫(kù)的下載非常繁重。 這將需要一些時(shí)間取決于您的Internet連接。

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

    a.下載Python庫(kù)并使用默認(rèn)選項(xiàng)進(jìn)行安裝。 您將需要其他幾個(gè)python擴(kuò)展。 幸運(yùn)的是,安裝所有這些可以通過(guò)一個(gè)名為Setuptools的好工具自動(dòng)化。 一次下載并全部安裝。
    b. 安裝Numpy的最簡(jiǎn)單方法是從sourceforge頁(yè)面下載其二進(jìn)制文件。 確保下載并安裝python版本的二進(jìn)制文件(因此版本為2.7.以上版本)
    c. 對(duì)于Intel Threading Building Blocks(* TBB *),下載源文件并將其解壓縮到系統(tǒng)上的目錄中。 例如:D:/ OpenCV / dep。 要安裝 Intel Integrated Performance Primitives(* IPP *)和上邊步驟是一樣的。 為了提取壓縮內(nèi)容,我建議使用7-Zip應(yīng)用程序。

    IntelTBB.png

    d.對(duì)于Intel IPP Asynchronous C / C ++下載源文件并設(shè)置環(huán)境變量IPP_ASYNC_ROOT。 它應(yīng)該指向<您的Program Files(x86)目錄> / Intel / IPP Preview */ ipp目錄。 這里*表示特定的預(yù)覽名稱。
    e.如果是Eigen庫(kù),則再次下載并解壓縮到D:/ OpenCV / dep目錄。
    f. 同上方法安裝OpenEXR.
    g. 對(duì)于OpenNI框架,您需要同時(shí)安裝開(kāi)發(fā)版PrimeSensor模塊
    h. 對(duì)于CUDA,您還需要兩個(gè)模塊:最新的CUDA工具包CUDA Tools SDK。 根據(jù)您的操作系統(tǒng),使用32位或64位設(shè)置,使用 complete選項(xiàng)下載并安裝它們。
    i. 在Qt框架的情況下,您需要自己構(gòu)建二進(jìn)制文件 (除非您使用帶有32位編譯器的Microsoft Visual Studio 2008)。 要執(zhí)行此操作,請(qǐng)轉(zhuǎn)到Qt Downloads頁(yè)面。 下載源文件 (不是安裝程序!!!)
    qtDownloadThisPackage.png

    將它解壓縮到一個(gè)很好的短命名目錄,如D:/ OpenCV / dep / qt /。 然后你需要建立它。 通過(guò)使用開(kāi)始菜單搜索啟動(dòng)Visual Studio命令提示符(2010)(或通過(guò)開(kāi)始菜單導(dǎo)航所有程序 - > Microsoft Visual Studio 2010 - > Visual Studio工具 - > Visual Studio命令提示符(2010))。

visualstudiocommandprompt.jpg

現(xiàn)在導(dǎo)航到解壓縮的文件夾,然后使用此控制臺(tái)窗口在其中輸入。 您應(yīng)該有一個(gè)包含Install,Make等文件的文件夾。 使用dir命令列出當(dāng)前目錄中的文件。 到達(dá)此目錄后,輸入以下命令:

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

完成此操作大約需要10-20分鐘。 然后輸入下一個(gè)需要更長(zhǎng)時(shí)間的命令(可以輕松地花費(fèi)超過(guò)一小時(shí)):

nmake

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

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

另外,使用PathEditor將構(gòu)建的二進(jìn)制文件路徑添加到系統(tǒng)路徑。 在我們的例子中,這是 D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin.

Note

如果您計(jì)劃進(jìn)行Qt應(yīng)用程序開(kāi)發(fā),您還可以在此時(shí)安裝Qt Visual Studio加載項(xiàng)。 在此之后,您可以在不使用Qt Creator的情況下制作和構(gòu)建Qt應(yīng)用程序。 一切都很好地集成到Visual Studio中。

  1. 現(xiàn)在打開(kāi)CMake(cmake-gui)。 您可以再次在開(kāi)始菜單搜索中輸入它,或從所有程序 - > CMake 2.8 - > CMake(cmake-gui)中獲取它。 首先,選擇OpenCV庫(kù)源文件的目錄(1)。 然后,指定一個(gè)目錄,您將在其中為OpenCV(2)構(gòu)建二進(jìn)制文件。


    CMakeSelectBin.jpg

    按Configure按鈕指定要使用的編譯器(和IDE)。 請(qǐng)注意,如果您可以選擇不同的編譯器來(lái)制作64位或32位庫(kù)。 選擇您在應(yīng)用程序開(kāi)發(fā)中使用的那個(gè)。


    CMake_Configure_Windows.jpg

    CMake將啟動(dòng)并根據(jù)您的系統(tǒng)變量嘗試自動(dòng)定位盡可能多的包。 您可以在WITH - > WITH_X菜單點(diǎn)(其中X是包縮寫(xiě))中修改要用于構(gòu)建的包。 以下是您可以打開(kāi)或關(guān)閉的當(dāng)前包的列表:
    CMakeBuildWithWindowsGUI.jpg

選擇要使用的所有軟件包,然后再次按 Configure按鈕。 為了更簡(jiǎn)單地概述構(gòu)建選項(xiàng),請(qǐng)確保打開(kāi)二進(jìn)制目錄選項(xiàng)下的Grouped選項(xiàng)。 對(duì)于某些軟件包,CMake可能找不到所有必需的文件或目錄。 在這種情況下,CMake將在其輸出窗口(位于GUI的底部)中拋出錯(cuò)誤,并將其字段值設(shè)置為未找到的常量。 例如:

CMakePackageNotFoundWindows.jpg

CMakeOutputPackageNotFound.jpg

為此,您需要手動(dòng)設(shè)置查詢的目錄或文件路徑。然后再按一次 Configure按鈕,看看您輸入的值是否被接受。這樣做,直到所有條目都不報(bào)錯(cuò),并且您不能在GUI的字段/值或輸出部分看到錯(cuò)誤提示。現(xiàn)在我想強(qiáng)調(diào)一個(gè)您肯定會(huì)喜歡的選項(xiàng):ENABLE - > ENABLE_SOLUTION_FOLDERS。OpenCV將創(chuàng)建許多項(xiàng)目,打開(kāi)這個(gè)選項(xiàng)將確保它們被分類在解決方案資源管理器中的目錄中。如果你問(wèn)我如果判斷它是否添加成功,這是一個(gè)必須有的特征。
CMakeBuildOptionsOpenCV.jpg

此外,您需要選擇要構(gòu)建的OpenCV的哪些部分:

  • BUILD_DOCS -> 它創(chuàng)建了兩個(gè)用于構(gòu)建OpenCV文檔的項(xiàng)目(將有一個(gè)單獨(dú)的項(xiàng)目來(lái)構(gòu)建HTML和PDF文件)。 請(qǐng)注意,這些不是與解決方案一起構(gòu)建的。 您需要對(duì)這些命令進(jìn)行顯式構(gòu)建項(xiàng)目命令才能執(zhí)行此操作。
  • BUILD_EXAMPLES -> OpenCV附帶了許多示例應(yīng)用程序,您可以從中學(xué)習(xí)大多數(shù)庫(kù)功能。 如果OpenCV在您的計(jì)算機(jī)上完全正常運(yùn)行,這也很容易嘗試。
  • BUILD_PACKAGE -> 在2.3版本之前,您可以構(gòu)建一個(gè)將構(gòu)建OpenCV安裝程序的項(xiàng)目。 有了這個(gè),您可以輕松地在其他系統(tǒng)上安裝OpenCV風(fēng)格。 對(duì)于OpenCV的最新源文件,它會(huì)生成一個(gè)新項(xiàng)目,只需使用OpenCV源創(chuàng)建一個(gè)zip存檔。
  • BUILD_SHARED_LIBS -> 有了這個(gè),您可以控制構(gòu)建DLL文件(打開(kāi)時(shí))或靜態(tài)庫(kù)文件(* .lib)。
  • BUILD_TESTS ->OpenCV的每個(gè)模塊都有一個(gè)分配給它的測(cè)試項(xiàng)目。 構(gòu)建這些測(cè)試項(xiàng)目也是一種很好的嘗試方法,模塊也可以在您的系統(tǒng)上按預(yù)期工作。
  • BUILD_PERF_TESTS -> 還有許多OpenCV功能的性能測(cè)試。 如果您擔(dān)心性能,請(qǐng)構(gòu)建它們并運(yùn)行。
  • BUILD_opencv_python -> 不言而喻。 創(chuàng)建二進(jìn)制文件以使用Python語(yǔ)言中的OpenCV。
    再次按Configure按鈕,確保未報(bào)告任何錯(cuò)誤。 如果是這種情況,您可以通過(guò)按Generat按鈕告訴CMake創(chuàng)建項(xiàng)目文件。 轉(zhuǎn)到構(gòu)建目錄并打開(kāi)創(chuàng)建的OpenCV解決方案。 根據(jù)您選擇的上述選項(xiàng)中的多少,解決方案可能包含很多項(xiàng)目,因此在啟動(dòng)時(shí)可以容忍IDE效率問(wèn)題。 現(xiàn)在您需要構(gòu)建Release和Debug二進(jìn)制文件。
    ChangeBuildVisualStudio.jpg

最后,您可以查看bin目錄中構(gòu)建的二進(jìn)制文件:

OpenCVBuildResultWindows.jpg

對(duì)于文檔,您需要在doxygen項(xiàng)目中為HTML文檔明確發(fā)出構(gòu)建命令。 它將調(diào)用Doxygen的做所有的辛勤工作。 您可以在build / doc / doxygen / html中找到生成的文檔。

要將您在自己的項(xiàng)目中使用的標(biāo)頭和二進(jìn)制文件收集到一個(gè)單獨(dú)的目錄中(類似于預(yù)先構(gòu)建的二進(jìn)制文件的發(fā)布方式),您需要顯式構(gòu)建Install項(xiàng)目。

WindowsBuildInstall.png

創(chuàng)建自己的第一個(gè)程序Build oneinstall目錄下,且把所有已經(jīng)編譯好的二進(jìn)制文件鏈接到此工程中且放在同一個(gè)目錄下,僅在構(gòu)建 Release 或者 Debug 版本時(shí)候使用它
要測(cè)試構(gòu)建,只需進(jìn)入Build / bin / DebugBuild / bin / Release目錄并啟動(dòng)幾個(gè)應(yīng)用程序,如contours.exe。 如果可以正常啟動(dòng)運(yùn)行,證明你就完成了所有工作。 否則,肯定會(huì)出現(xiàn)嚴(yán)重錯(cuò)誤。 在這種情況下,您應(yīng)該在我們的問(wèn)答論壇上與我們聯(lián)系。 如果一切正常,contours.exe輸出應(yīng)該類似于下圖(如果使用Qt支持構(gòu)建):
WindowsQtContoursOutput.png

Note

如果您使用GPU模塊(CUDA庫(kù)),請(qǐng)確保您還升級(jí)到GPU的最新驅(qū)動(dòng)程序。 包含(或找不到)nvcuda.dll中的無(wú)效條目的錯(cuò)誤消息主要是由舊的視頻卡驅(qū)動(dòng)程序引起的。 要測(cè)試GPU(如果構(gòu)建),請(qǐng)運(yùn)行performance_gpu.exe示例應(yīng)用程序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容