在Opencv - Optimization中加载YML文件
loading a YML file in Opencv - Optimization
我正在加载一个具有"160470 * 199"点的yml文件。我的机器花了一分钟多的时间。我怎样才能快一点呢?
我使用下面的代码加载一个yml文件。
Mat sd;
string Fsd = "//home//Desktop//YML//sd.yml";
FileStorage fsDemo1( Fsd, FileStorage::READ);
fsDemo1["sd"] >> sd;
您可以假设在OpenCV的FileStorage
类中读取的文件已经足够好地调整了性能。
你应该更担心的是,你真的需要FileStorage
的精细吗?使用此方法的缺点是将在大文件上运行完整的语法YAML
/XML
解析器。在我看来,这将比实际从磁盘读取文件所花费的时间要慢得多。
我的建议是,如果你真的在寻找快速读取磁盘并立即使用(不需要解析),我建议你将数据存储在二进制文件中。使用这样的文件的好处是,唯一的时间花在读取文件上,您不必解析这些文件。你可以直接从中读取C struct
或c++ class
。
然而,缺点是如果您确实将数据写入二进制文件,那么当您迁移到另一台机器(不同的体系结构)时,您可能会面临一些非常恼人的错误,特别是对于端序,或者甚至是int
类型的可变长度。但在我看来,这将是罕见的,因为大多数人使用英特尔或英特尔兼容的处理器。
以发布模式运行程序。
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 保存/加载大量短数组到二进制文件
- 使用 SDL2 和SDL_image C++加载图像
- 无法使用加载库卸载注入的 dll (C++)
- 是否有原子加载非原子值的函数?
- 将 bmp 文件加载到 TSpeedButton 中
- 如何使用Qt 3D库加载和显示搅拌机.obj源文件场景
- 在Opencv - Optimization中加载YML文件