opencv1.x 版本和新版本 2.X.x的一些大的区别

opencv1.x 版本和新版本 2.X.x的一些大的区别:

1. 首先,新的版本几乎完全向下兼容,变化主要体现现在:
a. 增加新的/优化的算法实现。(不多,因为图像处理经典的算法就那么多)
b. 对多语言/平台的支持,比如python, c++,android。这与现在的商业应用有关。
c. 文件命名规则发生了一些变化,比如现在的库统一为opencv_xxxxx.lib,加了前缀。(仅举例,可能还有别的)
d. 数据结构发生了变化。2.0以后,提倡使用Mat 结构,来代替以前的IplImage,Array。结构跟易于使用。(仅举例,可能还有别的)
e. 目录结构发生了变化,opencv opencv2,你观察一下就知道了。对旧的代码,要设置好inlucde路径。

2. 是否需要下载新的版本,取决你的情况。
a. 研究学习(在校学生)的话,个人觉得越新越好。代价是一些旧的代码可能需要多花些时间调试(学生多是这种需求吧? :-D)。
b. 项目开发的话,如果你不是决策者,就无须担忧这个问题。会有人决定的。——看问题,你应该不是。

3. 使用c风格还是c++风格:
a. 其实opencv对待c 与c++,如同对待c与python一样,分别提供了不同的API,完全独立。只是因为c与c++的关系,两者才显得纠结不清。
b. 使用谁完全取决于你。c++的语法相对宽松,接口简单,易于使用。c的已有代码、资料会多一些。——一般来说,是会混用的。:-D 因为大多数程序员都分不清c与c++的区别。
c. 简单说,就是不用纠结这个问题,把功能实现即可。

个人的一些浅薄简介,希望能帮到你。也是刚开始使用OpenCV。

整理自:http://www.opencv.org.cn/forum

Leave a Reply