Как заставить работать модуль opencv-contrib?

Я следовал этому руководству по установке opencv (версия 3.4.4) и модулей contrib, потому что хочу работать с алгоритмом SIFT. https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv/ Когда я заметил, что после установки он не работает должным образом, я удалил папку сборки и попробовал снова, но это тоже не сработало. Я импортировал вот так:

import cv2 as cv 

Я пробовал использовать SIFT (в python 3.6) следующими способами:

sift = cv.SIFT_create()
sift = cv.xfeatures2d.SIFT_create()
sift = cv.SIFT()
sift = cv.xfeatures2d.SIFT()

Поскольку это обычно приводит к следующим ошибкам: Ошибка атрибута: модуль cv2 не имеет атрибута 'SIFT_create' (то же самое происходит и с другими тремя вариантами), я полагаю, что я либо использую его неправильно, либо сам процесс установки не работал усердно работать.

После этого я нашел pip install opencv-contrib-python и использовал его. Совершенно безрезультатно.

Я был бы очень признателен за несколько советов о том, как заставить работать opencv с модулями contrib.


person SilverA    schedule 05.12.2020    source источник


Ответы (1)


Возможно, вам придется сказать cv2.xfeatures2d_SIFT или что-то подобное. модули OpenCV не обязательно сопоставляются с подмодулями python.

Поскольку патент на SIFT истек в 2019 году, OpenCV вернул его в features2d (основное репо) из xfeatures2d (репозиторий opencv_contrib). Пожалуйста, используйте самый последний выпуск 3.4.x или 4.x.

person Christoph Rackwitz    schedule 05.12.2020