Il se peut qu'il manque des modules ou des fonctions dans les versions des paquets disponibles pour votre distribution, ou tout simplement que vous souhaitiez utiliser la toute dernière version. De plus, cela corrigera ces erreurs :

AttributeError: 'module' object has no attribute 'xfeatures2d'
AttributeError: 'module' object has no attribute 'FeatureDetector_create'
AttributeError: 'module' object has no attribute 'DescriptorExtractor_create'
AttributeError: 'module' object has no attribute 'SIFT_create'
AttributeError: 'module' object has no attribute 'SURF_create'

1. Installez les dépendances.

2. Récupérez les sources du dépôt principal et des modules :

git clone "https://github.com/opencv/opencv.git" /opt/opencv
git clone "https://github.com/opencv/opencv_contrib.git" /opt/opencv_contrib

3. Compilez :

mkdir opencv-build
cd opencv-build
cmake -DOPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv
make -j4

4. Installez :

sudo make install

Source :