opencv各版本之间区别
Opencv 1.0 以前的历史忽略...
1.0
(2006年 10月)
新功能/特征
1. General :
☆ Windows 安装包中加入了预编译的Python 模块
☆ Borland C++(v5.6+) 新增了makefiles (参考 _make\make_all_bc.mak)
2. CV:
☆ 添加了Inpainting,参考 samplse/c/inpaint.cpp
3. MLL:
☆ 添加了Boosted 树分类器, 详见 参考手册 MLL 部分
4 HighGUI:
☆ 在highgui通过使用JasPer 和OpenEXR ,支持Jpeg2000 和 EXR 格式的文件 。在windows中 OpenEXR 不是默认内置到highgui 中的。 参考 otherlib/_graphics/readme.txt
☆ 支持 大于8_bit 图像(PNG,Jpeg2000 以及 OPenEXR)的输入/输出。
☆ 更新了 CMU camera wrapper.
☆ 改进和修正了 一些 V4L2
5 New Samples (opencv/samples ):
☆ 摄像机标定的例子:calibrate,cpp
☆ 图像修复的例子 :inpaint.cpp
☆ 根据已有数据,使用随机树 ,boosted 树以及神经网络等方法训练学习来进行字母识别:leter_recog.cpp
☆ 一些新的Python 例子
6 Tests:
☆ 大部分旧的 cv tests 已经被重写/修改成 使用cxts 替代了 trs,在tests中TRS 不再使用。
Bug fixes:
★ cvFindFundamentalMat 总错误的归一化(SF # 1550855)
★ cvGetQuadrangleSubPix 的偶然崩溃 (SF # 1549168)
★ cvCalcOpticalFlowPyrLK 的偶然崩溃 ()
★ 在cvFloor/cvCeil 出现内部GCC 3.X错误(SF # 1546657)
★ 一些和Python 相关的bug (SF #1570109 ,SF# 1572800,,SF #1543593 )
★ 轮廓处理/渲染 出现的bugs(SF # 1550889)
★ x86-64 相关的bugs(SF #1526133 ,SF #1527997)
★ cvFitEllipse ,cvFitLine,cvHoughCircles 在某些情况下出现不正确的结果。
★ 。。。。
已知问题 :
★ 一些tests在IA64(Itanium)可能失败。例如 gaussian filter ,fundamental matrix estimation, chessboard detector.
1.1 prel1
(2008 年10月)
新功能/特征
1 General :
☆ 增加了Octave bindings 。参考 interfaces/swig/octave (迄今为止只有 Linux)
☆ 【windows】 opencv 支持 VS2005, 同时也包括支持 OpenMP.
☆ 【windows】 更新到Python2.6
☆ 【windows】删掉了 cvcam (因为highgui现在支持 videoInput)。
2 CXCORE, CV,CVAUX :
☆ 增加了SUFR(speeded_up Robust Features)算法 ,参考 samples/c/find_obj.cpp 以及 文档 opencvref_cv.htm
☆ 摄像机标定增加了许多改进
■ 添加了摄像机的立体标定: cvStereoCalibrate,cvStereoRectify 等。
■ 使用Levenberg-Marquardt 方法进行单摄像机标定,同时支持 额外的标志 来进行控制摄像机各个参数优化的开关。
■ 在 每一个涉及到 标定相关的函数中 用到了径向畸变的第三个 参数 ((k3*r^6).
☆ 提供了更好的homograph 估计算法 (RANSAC 以及 LEMDs).
☆ 添加了新的 C++ 模板图像处理类 参考 opencv/cxcore/include /cvwimae.h
☆ 添加了快速近似的紧邻搜索
☆ 添加了背景/前景分割 的Codebook 算法
☆ 添加了排序函数
☆ 【OpenCV+IPP】人脸检测(cvHaarDetectObjects)速度加快(达到2倍) 使用 IPP 5.3 或者更高的版本.
☆ 添加了cvRemap中 更快(4 倍)的定点变化运算。
3 MLL;
☆ MLL 中添加了Python 绑定。 现在没有具体的例子。
4 HighGUI:
☆ 【windows ,32bit】添加了支持videoInput 的类库,因此,cvcam几乎不再需要。
☆ 【windows ,32bit】通过 ffopencv*.dll ,FFMGEG现在支持视频的解码/编码
☆ 【linux】 添加了支持unicap的功能
☆ 改进了内部视频的捕捉以及视频编码的 APIs.
5 Documentation:
☆ 出版了 OpenCV 书。
6. New samples (opencv/samples):
☆ 许多 Octave 例子
☆ find_obj.cpp (SURF),bgfg_codebook.cpp(Codebook BG/FG 分割),stereo_calib.cpp (立体校准 和立体匹配)
Bug fixes:
省略....
已知问题:
☆ 不支持 Borland 编译器(有可能工作)
☆ 不支持64位windows(有可能工作)
☆ SF bug跟踪器仍然包括 50多个bug记录 。在下面版本中解决他们。
2.0 beta
(2009 年9月)
新功能,特征:
1. General :
☆ 引进了崭新的C++接口,支持大部分OpenCV函数功能(cxcore,cv ,highgui).也就意味着你可以用较少的编码完成同样的结果; 同时,它能够自动进行内存管理和其他一些优点。
■ 查看opencv中的C++参考章节:/doc/opencv.pdf 和 opencv/include/opencv/*.hpp .
■ 先前的接口仍然保留并继续支持。
☆ 源目录结果重新组织;现在所有的外部头文件放置在所有平台的单目录里面。
☆ 主要的编译系统是CMake,
■ http://www.cmake.org(2.6.x 是相当好的版本).
■ 在Windows 包里Visual studio 里面的项目文件,MSVC 中的makefiles, Borland c++ 或者 MinGW 不再提供。请 用 CMake 产生它们。
■ 在 MacOSX, 使用者可以产生Xcode项目文件。
■ 在linux 和其他平台上,用户通过命令行编译OpenCV,可以在交叉平台的IDEs上产生项目文件,例如 Eclipse 或者 Code Blocks ,或者makefiles。
☆ Opencv 的库已经转换到Subversion,发布在 SourceForge:
■ http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary
■ 最新的snapshot 在 http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk,
■ 差不多稳定的版本在 http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot
2. CXCORE, CV,CVAUX:
☆ CXCORE 在各种线性代数函数中使用 Lapack (OpenCV 2.0中CLapack 3.1.1.1 ) 例如 solve,invert,SVD,determinant,等。 ☆ 增添了 许多新特征以及 物体检测和描述符。参见 cv.hpp ,cvaux.hpp:
■ FASE--快速角检测。
■ MSER-- 极值地方最稳定
■ LDetector- 快速基于圆特征检测器
■ 基于Fern 的点分类器 和 平面物体探测器
■ 旋转图像三维特征描述
■ 自相似特征(Self-similarity features)
■ HOG people 和物体检测
■ LBP 特征(局部二值特征)
■ Haar 特征的扩展变种。现在支持 Haar 特征和LBPs,其他特征可以用同样的方式添加。
■ 自适应皮肤检测和模糊meanshift 跟踪 ,参见:cvaux.hpp 以及 opencv/samples/c/adaptiveskindetector.cpp
☆ 添加与 新式的HAAR+LBP相互补的新的 traincascade应用的描述符。参见 opencv/apps/traincascade.
☆ opencv中添加了近似近邻搜索算法 FLANN 的强大类库,类库的接口在cxcore中。参见 cxcore.hpp 以及 opencv/samples/c/find_obj.cpp
☆ 根据论文添加了浓密的光流估计算法。("Two-Frame Motion Estimation Based on Polynomial Expansion" by G. Farnerback.)
☆ 图像扭曲操作(resize,remap,warpAffine,warpPerspective)现在全部支持 bicubic 和Lanczos interpolation。
☆ 大部分新的线性或者非线性滤波操作(filter2D,sepFilter2D,errod ,dilate ....)支持任意边界模式。
☆ 数据现在可以保存或者加载GZIP格式压缩的文件 XMl/YML .eg: cvSave("a.xml.gz",my_huge_matrix);
3 MLL:
☆ 添加了极限随机树,同Boosting 或者 Random Trees 相比,使训练速度超快。(by Maria Dimashova)
☆ 决策树引擎和基于它的类别(决策树自己 ,Boost, Random Trees) 被重做:
■ 它们消耗更少的内存(接近节省 200% )
■ 训练过程可以在多线程中运行。(当opencv 支持 OPenMP)
■ boosting 分类对于数值变量相当快,因为有专门的低开销分支。
☆ 添加了mltest。
4. HighGUI:
☆ 【linux】 添加了对立体相机的支持。
☆ 现在有捕捉视频的统一的接口,不管是2个,3个还是n个摄像头。
☆ 图像可以在内存缓冲区中进行压缩或者解压缩。参见 C++ HighGUI 参考手册。
5 Documentation:
☆ 参考手册从HTML格式装换成 LaTeX格式。http://opencv.willowgarage.com/documentation/index.html
6 Samples, misc.:
☆ 更好的眼睛检测例子,参见 opencv/data/haarcascades/*[lefteye|righteye]*.xml
☆ 基于LBP级联的正面面部检测。 参见 opencv/data/lbpcascdes/lbpcascade_frontalface.xml
☆ 几个高质量的身体部分和面部特征检测。参见 opencv/data/haarcascades/haarcascade_mcs*.xml
优化:
1. 许多基本函数以及图像的处理操作(arithmetic operations, geometric image transformations, filtering等)经过SSE2优化,所以 它们快好几倍。
2. IPP模型支持已经改变。现在的IPP的支持能够用CMake检测到,主要是 在配置阶段和关联opencv的时候。(在测试版本还没有实 现)。
3.PNG编码性能增加通过调节参数因子4.
Bug fixes:
参见 http://sourceforge.net/tracker/?group_id=22870&atid=376677 of the list of the closed and still opened bugs.
已知问题:
1. 基于configure和autotools 的编译方式已经坏掉,请使用 CMake编译
2. OpenCV 中bug跟踪器在SF 仍然有150多个开放的bug。
3. 不支持 IPP。在2.0 gold 版本中将支持。
4. 参考文档已经更新和改进了多次,但仍需要修改。
5.新式的Python 版本还没有包括进来。
2.0
(2009年9月)
新功能,特征:
1.General:
☆ Windows安装包已修好,MinGW 用来预编译代码
☆ 基于autotools编译已经修好
☆ 新的Python 接口正式加入。
2 .MLL:
☆ 添加了新式类的别名(例如:cv::SVM~CvSVM)和训练/预测方法,将cv::Mat 排除在Cvmat中。现在MLL可以无缝的使用剩下 的改变风格的OpenCV。
bug修订:
在 2.0 beta 版本中的很多bug已经被修好,参考 OpenCV bug 跟踪器。 http://sourceforge.net/tracker/?group_id=22870&atid=376677
待续..........
详细参考 http://opencv.willowgarage.com/wiki/OpenCV%20Change%20Logs