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环境变量并将其添加到系统路径部分。

安装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前,你可以手动直接创建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.等待执行完成,大约是喝两杯咖啡时间
8.如果你需要更新版本,只需更新:opencv 和 opencv_contrib两个文件夹,重新编译即可

windows系统上编译OpenCV到底需要安装那些工具,这里有最全面的整理资料

现在,我们将描述完整构建的步骤(使用所有上述框架、工具和库)。如果其中一些不需要支持,您可以直接跳过这一部分。

Building the library

  1. 安装可以正常启动Microsoft Visual Studio
  2. 安装cmake,只需按照向导,无需将其添加到路径中。 正常选择默认安装选项。
  3. 官方网站.下载并安装最新版本的msysgit。 还有便携版本,您只需要解压缩即可访问控制台版本的Git。 便携版对于一般开发人员来说,这已经足够了。
  4. 安装TortoiseGit。 根据您使用的操作系统类型选择32位或64位版本。安装时,找到您的msysgit(如果它不自动执行此操作)。 按照向导 - 大多数情况下默认选项都可以。
  5. 在文件系统中选择一个目录,您可以在其中下载OpenCV库。 我建议创建一个具有短路径且没有特殊字符的新路径,例如D:/ OpenCV。 在本教程中,我建议您这样做。 如果你使用自己的已知的路径,你这么做,也可以。

    a. 将存储库克隆到所选目录。 单击“克隆”按钮后,将出现一个窗口,您可以从中选择要从哪个存储库下载源文件(https://github.com/opencv/opencv.git)和目录(D:/OpenCV)。
    b. 按下“确定”按钮并保持耐心,因为存储库的下载非常繁重。 这将需要一些时间取决于您的Internet连接。

  6. 在本节中,我将介绍如何安装第三方库。

    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 ++下载源文件并设置环境变量IPP_ASYNC_ROOT。 它应该指向<您的Program Files(x86)目录> / Intel / IPP Preview */ ipp目录。 这里*表示特定的预览名称。
    e.如果是Eigen库,则再次下载并解压缩到D:/ OpenCV / dep目录。
    f. 同上方法安装OpenEXR.
    g. 对于OpenNI框架,您需要同时安装开发版PrimeSensor模块
    h. 对于CUDA,您还需要两个模块:最新的CUDA工具包CUDA Tools SDK。 根据您的操作系统,使用32位或64位设置,使用 complete选项下载并安装它们。
    i. 在Qt框架的情况下,您需要自己构建二进制文件 (除非您使用带有32位编译器的Microsoft Visual Studio 2008)。 要执行此操作,请转到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环境变量之后:

  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应用程序开发,您还可以在此时安装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位库。 选择您在应用程序开发中使用的那个。


    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将创建许多项目,打开这个选项将确保它们被分类在解决方案资源管理器中的目录中。如果你问我如果判断它是否添加成功,这是一个必须有的特征。
CMakeBuildOptionsOpenCV.jpg

此外,您需要选择要构建的OpenCV的哪些部分:

  • BUILD_DOCS -> 它创建了两个用于构建OpenCV文档的项目(将有一个单独的项目来构建HTML和PDF文件)。 请注意,这些不是与解决方案一起构建的。 您需要对这些命令进行显式构建项目命令才能执行此操作。
  • BUILD_EXAMPLES -> OpenCV附带了许多示例应用程序,您可以从中学习大多数库功能。 如果OpenCV在您的计算机上完全正常运行,这也很容易尝试。
  • BUILD_PACKAGE -> 在2.3版本之前,您可以构建一个将构建OpenCV安装程序的项目。 有了这个,您可以轻松地在其他系统上安装OpenCV风格。 对于OpenCV的最新源文件,它会生成一个新项目,只需使用OpenCV源创建一个zip存档。
  • BUILD_SHARED_LIBS -> 有了这个,您可以控制构建DLL文件(打开时)或静态库文件(* .lib)。
  • BUILD_TESTS ->OpenCV的每个模块都有一个分配给它的测试项目。 构建这些测试项目也是一种很好的尝试方法,模块也可以在您的系统上按预期工作。
  • BUILD_PERF_TESTS -> 还有许多OpenCV功能的性能测试。 如果您担心性能,请构建它们并运行。
  • BUILD_opencv_python -> 不言而喻。 创建二进制文件以使用Python语言中的OpenCV。
    再次按Configure按钮,确保未报告任何错误。 如果是这种情况,您可以通过按Generat按钮告诉CMake创建项目文件。 转到构建目录并打开创建的OpenCV解决方案。 根据您选择的上述选项中的多少,解决方案可能包含很多项目,因此在启动时可以容忍IDE效率问题。 现在您需要构建Release和Debug二进制文件。
    ChangeBuildVisualStudio.jpg

最后,您可以查看bin目录中构建的二进制文件:

OpenCVBuildResultWindows.jpg

对于文档,您需要在doxygen项目中为HTML文档明确发出构建命令。 它将调用Doxygen的做所有的辛勤工作。 您可以在build / doc / doxygen / html中找到生成的文档。

要将您在自己的项目中使用的标头和二进制文件收集到一个单独的目录中(类似于预先构建的二进制文件的发布方式),您需要显式构建Install项目。

WindowsBuildInstall.png

创建自己的第一个程序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阅读 175,490评论 5 419
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 74,060评论 2 335
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 124,407评论 0 291
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 47,741评论 0 248
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 56,543评论 3 329
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 43,040评论 1 246
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 34,107评论 3 358
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 32,646评论 0 229
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 36,694评论 1 271
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 32,398评论 2 279
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 33,987评论 1 288
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 30,097评论 3 285
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 35,298评论 3 282
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 27,278评论 0 14
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 28,413评论 1 232
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 38,397评论 2 309
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 38,099评论 2 314

推荐阅读更多精彩内容