IplImage vs CvMat
IplImage vs CvMat
我知道很多人对IplImage
和CvMat
之间的技术差异感兴趣。(是的,不是cv::Mat
(*),而是CvMat
。因此,让我们以实际为重点来清除差异。
CvMat
是IplImage
的引用版本吗?CvMat
只是IplImage
的包装纸吗?如果是这样,为什么他们也发展CvMat
?
我问这些问题是因为我认为IplImage
在整个搜索中是最受欢迎的,在我看来,它的帖子也最多。
仍然使用 IplImage 而不是更新的结构有什么好处?
(*)(我在这里也放了 c++ 标签,因为很多人也将其与 c++ 一起使用,而且有些库更喜欢IplImage
。
我建议您阅读《学习OpenCV》一书中的OpenCV原始数据类型段落。关于这两种数据类型之间的差异,有一个很大而很好的解释。
IplImage
来自英特尔图像处理库,根据文档:http://opencv.willowgarage.com/documentation/basic_structures.html#iplimage
这个问题还涉及CvMat
结构,您可能会注意到:OpenCV的cvMat的内存结构是什么?
至于哪个更有益:虽然在各种情况下,CvMat
或IplImage
在这里或那里可能存在轻微的速度差异 - 这取决于你想做什么。 例如,您是否需要在内存中共享矩阵结构?您是否需要有效地序列化或搜索等?申请很重要。
(从理论上讲,IplImage
提供的一个优势是,正如您所指出的,由于其血统,它通常与现有实现更兼容。
回答您的问题:
仍然使用IplImage而不是更新有什么好处 结构?
也许没有。由于某种原因,它已被开发人员弃用,我猜您仍然发现它很多的原因是因为遗留代码;因为人们仍然遵循旧的代码示例,而不知道该结构已被弃用,并且因为"学习OpenCV第一版"在OpenCV函数签名和数据结构方面已经过时,但仍然有很多人从OpenCV开始遵循它。
作为参考,Learning OpenCV 第 2 版应该在 2013 年 3 月发布,但不要引用我的话;)
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- IplImage vs CvMat