1

我真的不知道下一个项目要用什么:IplImage?还是 Cv::Mat?

知道我想要:

  • 更好的表现
  • 关于使用的不同工具(垫子的乘法,不同的计算/图像处理工具......)的相当快的响应
  • 更少使用记忆

如果是这样,我应该将我以前的所有 IplImages 更改为 cv::Mat 吗?

4

1 回答 1

6

它们都不比另一个更快或更轻。至少以任何可衡量的方式。(也许 cv::Mat 比 IplImage 多 4 个字节,与将图像数据存储到其中所需的 12.000.000 字节相比,这不会造成伤害)

它们都没有提供更快的计算,也没有更多的工具来处理它。

他们提供的只是一个指向一些数据的指针,以及一些关于图像宽度、高度、步长和类型的额外信息。

但是 cv::Mat(以及 C++ 接口的其余部分)使用起来更容易、更安全。您可以在更短的时间内编写更少的代码。您需要修复的错误更少。这使您可以专注于在速度和内存消耗方面改进算法。

对于这个事实,是的,cv::Mat 更快更轻——如果你好好利用它的话。

另外,检查这个类似的OpenCV:C++ 和 C 性能比较

于 2013-05-24T12:59:14.430 回答