代码之家  ›  专栏  ›  技术社区  ›  Pawel

为Windows 10 IoT核心ARM编译OpenCV 3(Raspberry Pi)

  •  3
  • Pawel  · 技术社区  · 8 年前

    编译OpenCV 3的最简单方法是什么。*对于使用Windows OS上托管的Visual Studio的Windows 10 IoT核心ARM(Raspberry Pi)?

    我可以在其他contrib模块中使用DNN(深层神经网络)模块吗?

    1 回复  |  直到 8 年前
        1
  •  5
  •   Community Mohan Dere    6 年前

    我在为运行在Raspberry Pi 3上的Windows 10 IoT Core(10.0.16299.0)编译OpenCV 3.4.1时遇到了一些困难,所以我决定与社区分享我的经验。

    要求

    您只需继续:

    • OpenCV源(来自 Github )。 opencv 核心功能和 opencv\u contrib 用于其他模块。
    • CMake gui( here )
    • 使用ARM工具集和Windows 10 SDK的Visual Studio。

    我使用了最近的 Visual Studio 2017 (15.6.2)。社区版就足够了。确保您有所需的Visual Studio组件:

    • 适用于UWP的Windows 10 SDK(10.0.16299.0):C++
    • UWP的Visual C++运行时
    • 用于ARM的Visual C++编译器和库

    SDK版本显然应与目标OS平台版本匹配。今天是10.0.16299.0。

    配置

    启动CMake gui。选择OpenCV源代码的存储位置(根路径)和构建位置(配置、临时和输出)。点击 配置

    CMake-gui initial window

    在弹出窗口中选择 Visual Studio 15 2017 ARM 作为生成器(工具集和体系结构版本),并选择 “指定交叉编译选项”

    enter image description here

    提供:

    • 操作系统: 利用商展
    • 版本: 10
    • 处理器: 手臂

    enter image description here

    成功生成(可能有一些警告)应以“配置完成”消息结束,并显示make选项。

    寻找 OPENCV_EXTRA_MODULES_PATH 选项并为您提供路径 opencv_contrib/modules 文件夹

    enter image description here

    点击 配置 再一次

    现在,您可以选择希望包含在构建中的模块。 在我的配置中,我有:

    • 已启用构建opencv world single库( BUILD_opencv_world )
    • 禁用生成测试和应用程序( BUILD_TESTS ,则, BUILD_PERF_TESTS ,则, BUILD_opencv_apps )
    • ( 可选 )启用Raspberry Pi NEON和VFP3优化( ENABLE_VPF3=ON ,则, ENABLE_NEON=ON )。您可以使用Cmake中的“添加条目”(作为布尔值)添加它们,但目前在处理这些选项时存在一些OpenCV make问题。

    我不得不这么做 使残废 描述符( BUILD_opencv_line_descriptor )和显著性模块( BUILD_opencv_saliency )原因是他们在Microsoft特定的\uu popcnt方面存在问题,这在ARM platform for MS编译器上不可用。

    我使用了一个技巧来启用Windows的DNN模块。在里面 /modules/dnn/CMakeList.txt 您必须评论前三行:

    #if(WINRT)
    #  ocv_module_disable(dnn)
    #endif()
    

    配置 再次单击 生成 . 在Visual Studio中打开项目(.SLN)。

    enter image description here

    默认项目为ALL\u BUILD is这是要生成的项目。选择要生成的配置(发布或调试)。请注意,对于不同的配置,生成的导入库(.lib)和dll(.dll)将具有不同的名称。

    enter image description here

    就是这样!这些库可以链接到UWP应用程序(C++/CX)和ARM平台库。

    此外,您可以使用相同的过程为 x64 x86 平台:再次从Cmake gui开始,选择不同的构建文件夹,并在配置的第一步中选择 Visual Studio 15 2017 x64 x86 作为生成器,然后在交叉编译选项中相应地作为处理器。配置过程的其余部分看起来相同。

    要在Windows 10 IoT Core上进一步使用OpenCV,您可以查看Microsoft自己提供的示例,例如。 here