->问题描述:如何用c++读取一个文件夹下的所有图片处理并保存opencv?
这是一个非常常见的问题,目前网上提到的写法,大多都依赖于系统调用(基本就是不能跨平台使用),直到在openvslam的实现里,发现了一种比较好的方法,如下:
而这里我们就可以用到VCPKG去安装dirent库来实现上述的solution。
(除此之外,其实还可以通过opencv的glob获取文件的方式来操作,当然此处是为了抛砖引出VCPKG)
VCPKG是什么
VCPKG是微软 C++ 团队开发的适用于 C 和 C++ 库的跨平台开源软件包管理器,它大大简化了 Windows、Linux 和 macOS 上第三方库相关的下载和配置操作,目前已有超过1600个第三方库可以通过vcpkg来安装。
VCPKG的优势
- 自动下载开源库源代码。
- 一键安装第三方库。
- 源码包的缓存管理和版本管理,可以依需求安装指定的版本。
- 自动检查库的依赖关系并安装其依赖项。
- 无缝集成Visual Studio,不用手动设置任何的库相关的路径。
- Visual Studio全平台支持,不仅支持Debug/Release、x86/x64编译,还支持UWP、ARM平台的编译。
VCPKG的获取
下载
VCPKG的官方源码站点为:https://github.com/microsoft/vcpkg
通常,您可以在PowerShell窗口中使用git命令克隆vcpkg的当前版本:
git clone https://github.com/microsoft/vcpkg
获取vcpkg.exe
获取vcpkg.exe很简单,使用PowerShell执行vcpkg工程目录下的“bootstrap-vcpkg.bat”命令即可。
集成到全局
适用于visual studio环境和MSBuild命令行,执行以下命令:
vcpkg.exe integrate install
然后安装dirent库:
vcpkg.exe install dirent