The difference between opencv-python and opencv-contrib-python
Question:
I was looking at the Python Package Index (PyPi) and noticed 2 very similar packages: opencv-contrib-python and opencv-python and wondering what the difference was. I looked at them and they had the exact same description and version numbers.
Answers:
As per PyPi documentation:
There are four different packages (see options 1, 2, 3 and 4 below):
Packages for standard desktop environments:
Option 1 – Main modules package: pip install opencv-python
Option 2 –
Full package (contains both main modules and contrib/extra modules):
pip install opencv-contrib-python
(check contrib/extra modules listing
from OpenCV documentation)
Packages for server (headless) environments:
Option 3 – Headless main modules package: pip install opencv-python-headless
Option 4 – Headless full package (contains both main modules and contrib/extra modules): pip install opencv-contrib-python-headless
Do not install multiple different packages in the same environment
Opencv has two compilations for each version, the "regular" one that is functional and well tested and the compilation with the extra components (contribs package) in their github’s page they put:
This repository is intended for the development of so-called "extra" modules, contributed functionality. New modules quite often do not have stable API, and they are not well-tested. Thus, they shouldn’t be released as a part of the official OpenCV distribution, since the library maintains binary compatibility, and tries to provide decent performance and stability.
Also in contribs package there are several non-free computer vision algorithms (for features) such as SURF, BRIEF, Censure, Freak, LUCID, Daisy, BEBLID, TEBLID.
I was looking at the Python Package Index (PyPi) and noticed 2 very similar packages: opencv-contrib-python and opencv-python and wondering what the difference was. I looked at them and they had the exact same description and version numbers.
As per PyPi documentation:
There are four different packages (see options 1, 2, 3 and 4 below):
Packages for standard desktop environments:
Option 1 – Main modules package:
pip install opencv-python
Option 2 –
Full package (contains both main modules and contrib/extra modules):
pip install opencv-contrib-python
(check contrib/extra modules listing
from OpenCV documentation)
Packages for server (headless) environments:
Option 3 – Headless main modules package:
pip install opencv-python-headless
Option 4 – Headless full package (contains both main modules and contrib/extra modules):
pip install opencv-contrib-python-headless
Do not install multiple different packages in the same environment
Opencv has two compilations for each version, the "regular" one that is functional and well tested and the compilation with the extra components (contribs package) in their github’s page they put:
This repository is intended for the development of so-called "extra" modules, contributed functionality. New modules quite often do not have stable API, and they are not well-tested. Thus, they shouldn’t be released as a part of the official OpenCV distribution, since the library maintains binary compatibility, and tries to provide decent performance and stability.
Also in contribs package there are several non-free computer vision algorithms (for features) such as SURF, BRIEF, Censure, Freak, LUCID, Daisy, BEBLID, TEBLID.