用什么:Ipl?或垫
What to use : Ipl? or Mat?
我真的不知道下一个项目该用什么:IplImage吗?或简历::垫吗?
知道我想要:
- 性能更好
- 对于使用的不同工具(乘法,不同的计算/图像处理工具…)的相当大的速度响应
- 内存使用减少
如果是这样,我是否需要将之前所有的IplImages更改为cv::Mat?
两者都不比另一个更快或更轻。至少在任何可衡量的方面。(也许cv::Mat比IplImage多4个字节,与需要将图像数据存储到其中的12.000.000字节相比,这不会造成伤害)
它们都没有提供更快的计算,也没有更多的工具来处理它。
它们提供的只是一个指向一些数据的指针,以及一些关于图像宽度、高度、步长和类型的额外信息。
但是cv::Mat(和c++接口的其余部分)使用起来更容易、更安全。在更短的时间内编写更少的代码。你需要修复的bug更少了。这使您可以专注于在速度和内存消耗方面改进算法。
对于这个事实,是的,cv::Mat要快得多,也要轻得多——如果你好好利用的话。
同样,检查这个类似的OpenCV: c++和C的性能比较
相关文章:
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 何时在引用或唯一指针上使用移动语义
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- C / C++ 移位/偏移/向左或向右移动位图?
- 如何修复函数样式强制转换或类型构造的预期"("?
- Xaudio2在更改缓冲区或循环时弹出声音
- 有效地使用std::unordered_map来插入或增加键的值
- 指针或结构的矢量
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 从简历垫中删除行或列的最佳方法是什么
- 在 OpenCV 中将向量转换为行或将空垫转换为行的有效方法
- 用什么:Ipl?或垫
- 从数组创建或重塑OpenCV 3通道垫