当前位置:网站首页>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
边栏推荐
- C language pointer classic interview question - the first bullet
- PHP personal album management system source code, realizes album classification and album grouping, as well as album image management. The database adopts Mysql to realize the login and registration f
- 品牌连锁店5G/4G无线组网方案
- Golang defer
- JDBC and MySQL database
- Web端自动化测试失败原因汇总
- Hands on deep learning (44) -- seq2seq principle and Implementation
- Log cannot be recorded after log4net is deployed to the server
- Hands on deep learning (36) -- language model and data set
- Work order management system OTRs
猜你喜欢
Summary of small program performance optimization practice
用数据告诉你高考最难的省份是哪里!
Reprint: summation formula of proportional series and its derivation process
libmysqlclient. so. 20: cannot open shared object file: No such file or directory
智能网关助力提高工业数据采集和利用
Hands on deep learning (43) -- machine translation and its data construction
[FAQ] summary of common causes and solutions of Huawei account service error 907135701
leetcode1-3
Sort out the power node, Mr. Wang he's SSM integration steps
基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 2
随机推荐
基于线性函数近似的安全强化学习 Safe RL with Linear Function Approximation 翻译 1
Golang Modules
Upgrading Xcode 12 caused Carthage to build cartfile containing only rxswift to fail
Batch distribution of SSH keys and batch execution of ansible
Whether a person is reliable or not, closed loop is very important
Native div has editing ability
uniapp 处理过去时间对比现在时间的时间差 如刚刚、几分钟前,几小时前,几个月前
Golang 类型比较
SQL replying to comments
Write a mobile date selector component by yourself
【Day2】 convolutional-neural-networks
How do microservices aggregate API documents? This wave of show~
A little feeling
PHP code audit 3 - system reload vulnerability
7-17 crawling worms (15 points)
PHP student achievement management system, the database uses mysql, including source code and database SQL files, with the login management function of students and teachers
智慧路灯杆水库区安全监测应用
Service developers publish services based on EDAs
Hands on deep learning (41) -- Deep recurrent neural network (deep RNN)
Ruby时间格式转换strftime毫秒匹配格式