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 :