IplImage vs CvMat

IplImage vs CvMat

本文关键字:CvMat vs IplImage      更新时间:2023-10-16

我知道很多人对IplImageCvMat之间的技术差异感兴趣。(是的,不是cv::Mat (*),而是CvMat。因此,让我们以实际为重点来清除差异。

CvMatIplImage的引用版本吗?CvMat只是IplImage的包装纸吗?如果是这样,为什么他们也发展CvMat

我问这些问题是因为我认为IplImage在整个搜索中是最受欢迎的,在我看来,它的帖子也最多。

仍然使用 IplImage 而不是更新的结构有什么好处?

(*)(我在这里也放了 c++ 标签,因为很多人也将其与 c++ 一起使用,而且有些库更喜欢IplImage

我建议您阅读《学习OpenCV》一书中的OpenCV原始数据类型段落。关于这两种数据类型之间的差异,有一个很大而很好的解释。

IplImage来自

英特尔图像处理库,根据文档:http://opencv.willowgarage.com/documentation/basic_structures.html#iplimage

这个问题还涉及CvMat结构,您可能会注意到:OpenCV的cvMat的内存结构是什么?

至于哪个更有益:虽然在各种情况下,CvMatIplImage在这里或那里可能存在轻微的速度差异 - 这取决于你想做什么。 例如,您是否需要在内存中共享矩阵结构?您是否需要有效地序列化或搜索等?申请很重要。

(从理论上讲,IplImage提供的一个优势是,正如您所指出的,由于其血统,它通常与现有实现更兼容。

回答您的问题:

仍然使用IplImage而不是更新有什么好处 结构?

也许没有。由于某种原因,它已被开发人员弃用,我猜您仍然发现它很多的原因是因为遗留代码;因为人们仍然遵循旧的代码示例,而不知道该结构已被弃用,并且因为"学习OpenCV第一版"在OpenCV函数签名和数据结构方面已经过时,但仍然有很多人从OpenCV开始遵循它。

作为参考,Learning OpenCV 第 2 版应该在 2013 年 3 月发布,但不要引用我的话;)