我真的不知道下一个项目要用什么:IplImage?还是 Cv::Mat?
知道我想要:
- 更好的表现
- 关于使用的不同工具(垫子的乘法,不同的计算/图像处理工具......)的相当快的响应
- 更少使用记忆
如果是这样,我应该将我以前的所有 IplImages 更改为 cv::Mat 吗?
我真的不知道下一个项目要用什么:IplImage?还是 Cv::Mat?
知道我想要:
如果是这样,我应该将我以前的所有 IplImages 更改为 cv::Mat 吗?
它们都不比另一个更快或更轻。至少以任何可衡量的方式。(也许 cv::Mat 比 IplImage 多 4 个字节,与将图像数据存储到其中所需的 12.000.000 字节相比,这不会造成伤害)
它们都没有提供更快的计算,也没有更多的工具来处理它。
他们提供的只是一个指向一些数据的指针,以及一些关于图像宽度、高度、步长和类型的额外信息。
但是 cv::Mat(以及 C++ 接口的其余部分)使用起来更容易、更安全。您可以在更短的时间内编写更少的代码。您需要修复的错误更少。这使您可以专注于在速度和内存消耗方面改进算法。
对于这个事实,是的,cv::Mat 更快更轻——如果你好好利用它的话。
另外,检查这个类似的OpenCV:C++ 和 C 性能比较