当前位置:网站首页>Differences among opencv versions
Differences among opencv versions
2022-07-04 10:12:00 【Wildcraner】
Opencv2 Mark the opencv Revolutionary change ,Opencv2 Bring a whole new C++ Interface , take Opencv The ability to magnify infinitely . stay 2.0 Time ,opencv Added new platform support , Include iOS and Android, adopt CUDA and openGL Realized GPU Speed up , by Python and Java The user provides an interface .
Opencv 3 Changed the way the project architecture ,3.0 The version will not be like 2.0 As radical as version , There will only be stable enough improvements . The change of project architecture is Opencv 3 The most significant innovation .2.0 Version means that each module is built as a whole and then combined . However , With the increase of function ,opencv The main body integrates various functional modules , Become more and more bloated . and 3.0 This version is designed to give you more and more weight opencv To lose weight , because Opencv3 Decided to be like other big projects , Abandon the overall architecture , Using the kernel + The architectural form of plug-ins .
stay GitHub in , In addition to storing the official version opencv Main warehouse and newly added “opencv_extra” Outside the warehouse ,opencv3 A new one named “opencv_contrib” New warehouse , The warehouse includes many exciting functions : Face recognition , Text detection , Text recognition , New edge detector , Artistic image restoration , Depth map processing , New optical flow and tracking algorithm .
opencv_contrib The warehouse is where most experimental code is placed , some API May change , These additional modules can be found in CMake of use OPENCV_EXTRA_MODULES_PATH=/modules Pass to CMake file .
OpenCV 1.x
OpenCV Originally based on C Language development ,API It's all based on C Of , Facing memory management 、 Pointer, etc C The trouble inherent in language .
2006 year 10 month 1.0 When it was released , Part of it uses C++, Support at the same time Python, There is already random trees、boosted trees、neural nets And so on , Improve the support for graphical interface .
2008 year 10 month 1.1pre1 Release , Use VS2005 structure ,Python bindings Support Python 2.6,Linux Support Octave bindings, In this version SURF、RANSAC、Fast approximate nearest neighbor search etc. ,Face Detection (cvHaarDetectObjects) And faster .
OpenCV 2.x
When C++ Become popular ,OpenCV 2.x Release , Try to use C++ instead of C, But for forward compatibility , Still retain the right C API Support for . from 2010 Year begins ,2.x Decide not to support and update frequently C API, It is focus stay C++ API,C API Just for backup .
2009 year 9 month 2.0 beta Release , The main use of CMake structure , Added a lot of new features 、 Descriptors, etc , Such as FAST、LBP etc. .
2010 year 4 month 2.1 edition , Joined the Grabcut etc. , have access to SSE/SSE2… Instruction set .
2010 year 10 month 2.2 Version release ,OpenCV The module has become familiar to everyone , image opencv_imgproc、opencv_features2d etc. , At the same time opencv_contrib Used to place immature code ,opencv_gpu Place use CUDA Accelerated OpenCV function .
2011 year 6 From the beginning of the month 2.3.x edition 、2012 year 4 From the beginning of the month 2.4.x edition , Add new methods , One side repair bug, At the same time, strengthen the GPU、Java for Android、 OpenCL、 Parallelization support and so on ,OpenCV More stable and perfect , It is worth noting that SIFT and SURF from 2.4 Began to be put in nonfree modular ( Because patents ).
Considering the transition ,OpenCV 2.4.x Still maintaining , But in the future, we may only do bug Repair and efficiency improvement , No more new features —— Encourage to 3.x transfer .
OpenCV 3.x
With 3.x Release ,1.x Of C API Will be eliminated and no longer supported , in the future C API May be through C++ Automatic generation of source code .3.x And 2.x Not fully compatible , And 2.x comparison , The main difference is OpenCV 3.x Most of the methods used OpenCL Speed up .
2014 year 8 month 3.0 alpha Release , Except that most methods use OpenCL Speed up the outside ,3.x The default includes and uses IPP, meanwhile ,matlab bindings、Face Recognition、SIFT、SURF、 text detector、motion templates & simple flow When it's all moved to opencv_contrib Next (opencv_contrib Not only does it store unstable code , At the same time, it also stores the technical realization related to patent protection ), A large number of emerging new methods are also included .
2017 year 8 month 3.3 edition ,2017 year 12 At the beginning of the month 3.4.x edition ,opencv_dnn from opencv_contrib Moved to opencv, meanwhile OpenCV Start supporting C++ 11 structure , After that, it was obvious that the support for neural network was strengthening ,opencv_dnn Continuously improved and expanded .
OpenCV 4.0
2018 year 10 month 4.0.0 Release ,OpenCV Need support at first C++11 To compile , Use... For hundreds of basic functions at the same time "wide universal intrinsics" rewrite , These inline functions can be mapped to... Based on the target platform and compilation options SSE2、 SSE4、 AVX2、NEON perhaps VSX Inline function , Get performance improvement . Besides , Also joined the QR code Detection and identification of , as well as Kinect Fusion algorithm,DNN It is also continuously improving and expanding .
Reference resources https://www.cnblogs.com/shine-lee/p/9884551.html
边栏推荐
- 基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 1
- Log cannot be recorded after log4net is deployed to the server
- System. Currenttimemillis() and system Nanotime (), which is faster? Don't use it wrong!
- Does any teacher know how to inherit richsourcefunction custom reading Mysql to do increment?
- Regular expression (I)
- Go context 基本介绍
- ASP. Net to access directory files outside the project website
- Hands on deep learning (45) -- bundle search
- PHP is used to add, modify and delete movie information, which is divided into foreground management and background management. Foreground users can browse information and post messages, and backgroun
- Devop basic command
猜你喜欢
Hands on deep learning (39) -- gating cycle unit Gru
MATLAB小技巧(25)竞争神经网络与SOM神经网络
mmclassification 标注文件生成
Hands on deep learning (37) -- cyclic neural network
Pcl:: fromrosmsg alarm failed to find match for field 'intensity'
【OpenCV 例程200篇】218. 多行倾斜文字水印
法向量点云旋转
C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
Work order management system OTRs
华为联机对战如何提升玩家匹配成功几率
随机推荐
Hands on deep learning (44) -- seq2seq principle and Implementation
Reasons and solutions for the 8-hour difference in mongodb data date display
Modules golang
Hands on deep learning (36) -- language model and data set
The time difference between the past time and the present time of uniapp processing, such as just, a few minutes ago, a few hours ago, a few months ago
Qtreeview+ custom model implementation example
System. Currenttimemillis() and system Nanotime (), which is faster? Don't use it wrong!
Batch distribution of SSH keys and batch execution of ansible
MATLAB小技巧(25)竞争神经网络与SOM神经网络
7-17 crawling worms (15 points)
浅谈Multus CNI
Hands on deep learning (34) -- sequence model
Hands on deep learning (40) -- short and long term memory network (LSTM)
System.currentTimeMillis() 和 System.nanoTime() 哪个更快?别用错了!
C language pointer classic interview question - the first bullet
Sort out the power node, Mr. Wang he's SSM integration steps
Write a jison parser (7/10) from scratch: the iterative development process of the parser generator 'parser generator'
mmclassification 标注文件生成
Golang type comparison
基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 1