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

为Windows 10 IoT核心ARM编译OpenCV 3(Raspberry Pi),opencv,arm,raspberry-pi3,windowsiot,windows-iot-core-10,Opencv,Arm,Raspberry Pi3,Windowsiot,Windows Iot Core 10,使用Windows操作系统上的Visual Studio为Windows 10 IoT核心ARM(Raspberry Pi)编译OpenCV 3.*最简单的方法是什么 我可以在其他contrib模块中使用DNN(深度神经网络)模块吗?我在尝试编译运行于Raspberry Pi 3上的适用于Windows 10 IoT Core(10.0.16299.0)的OpenCV 3.4.1时遇到了一些困难,因此我决定与社区分享我的经验 要求 您只需执行以下操作: OpenCV源代码(来自)opencv用

使用Windows操作系统上的Visual Studio为Windows 10 IoT核心ARM(Raspberry Pi)编译OpenCV 3.*最简单的方法是什么


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

我在尝试编译运行于Raspberry Pi 3上的适用于Windows 10 IoT Core(10.0.16299.0)的OpenCV 3.4.1时遇到了一些困难,因此我决定与社区分享我的经验

要求 您只需执行以下操作:

  • OpenCV源代码(来自)opencv用于核心功能,而opencv_contrib用于附加模块
  • cmakegui()
  • 使用ARM工具集和Windows10SDK的VisualStudio
我使用了最新的Visual Studio 2017(15.6.2)。社区版就足够了。确保您具有所需的Visual Studio组件:

  • 用于UWP的Windows 10 SDK(10.0.16299.0):C++
  • UWP
  • 的VisualC++运行时
  • ARM
  • 的Visual C++编译器和库
SDK版本显然应与目标操作系统平台版本匹配。到今天为止是10.0.16299.0

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

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

提供:

  • 操作系统:WindowsStore
  • 版本:10.0
  • 处理器:ARM

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

查找
OPENCV\u EXTRA\u MODULES\u PATH
选项,并向您提供路径
OPENCV\u contrib/MODULES
文件夹

再次单击配置

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

  • 启用了构建opencv世界单个库(
    BUILD\u opencv\u world
  • 禁用构建测试和应用程序(
    构建测试
    构建性能测试
    构建opencv应用程序
  • 可选)启用Raspberry Pi NEON和VFP3优化(
    启用VPF3=ON
    启用NEON=ON
    )。您可以使用Cmake中的“添加条目”(作为布尔值)来添加它们,但目前在处理这些选项时存在一些OpenCV make问题
我不得不禁用描述符(
BUILD\u opencv\u line\u descriptor
)和显著性模块(
BUILD\u opencv\u salicence
),因为它们与Microsoft特定的popcnt存在问题,而MS编译器在ARM平台上无法使用

我使用了一个技巧来启用Windows的DNN模块。在中,您必须注释前三行:

#if(WINRT)
#  ocv_module_disable(dnn)
#endif()
再次配置并单击生成
。在Visual Studio中打开项目(.SLN)

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

就这样!这些库可能是针对UWP应用程序(C++/CX)和ARM平台库的链接

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


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

感谢您的分发。为ARM上的IoT Core编译OpenCV 3.4对其他感兴趣的人来说非常有帮助。按照您的指导,我在列表中找不到
启用VPF3
启用霓虹灯
@PawelIn Cmake gui您可以使用“添加条目”将这些选项添加为布尔值。不幸的是,OpenCV上存在一些未解决的问题,这些问题通常无法按预期工作。