[英]IplImage vs CvMat
我知道很多人对IplImage
和CvMat
之间的技术差异感兴趣。 (是的,不是cv::Mat
(*),而是CvMat
。)所以,让我们以实际为重点来区分差异。
CvMat
是IplImage
版本吗? CvMat
只是IplImage
的包装器吗? 如果是这样,为什么他们也开发CvMat
?
我问了这些问题,因为我看到IplImage
在整体搜索中是最受欢迎的,在我看来它也是最多的帖子。
仍然使用IplImage而不是更新的结构有什么好处 ?
(*)(我在这里也提出了c ++标签,因为许多人也在使用c ++,而且有些库更喜欢IplImage
。)
我建议您阅读Learning OpenCV一书中的OpenCV Primitive Data Types段落。 关于这两种数据类型之间的差异有一个很好的解释。
IplImage
来自英特尔图像处理库,根据文档: http : //opencv.willowgarage.com/documentation/basic_structures.html#iplimage
这个问题也解决了CvMat
结构,你可能会注意到: OpenCV的cvMat的内存结构是什么?
至于哪个更有益:虽然在各种情况下CvMat
或IplImage
在这里或那里可能存在轻微的速度差异 - 这取决于你想要做什么。 例如,您需要在内存中共享矩阵结构吗? 您是否需要高效序列化或搜索等? 申请很重要。
(从理论上讲, IplImage
提供的一个优势是,由于它的谱系,它通常与现有的实现更兼容,正如您所指出的那样。)
回答你的问题:
仍然使用IplImage而不是更新的结构有什么好处?
也许没有。 由于某些原因它已被开发者弃用了,我猜你仍然会发现它的原因很多是因为遗留代码; 因为人们仍然遵循旧的代码示例而不知道该结构已被弃用,并且因为“学习OpenCV 第一版 ”在opencv函数签名和数据结构方面已经过时,但仍然有许多人以opencv开头。
作为参考, 学习OpenCV第二版应该是2013年3月,但不要引用我;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.