Python AttributeError: объект 'module' не имеет атрибута 'DIST_L2'

Я пытаюсь использовать метод cv2.distanceTransform() в Python. И я получаю сообщение об ошибке при запуске следующей строки кода:

dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5)

При запуске этого кода появляется следующая ошибка:

AttributeError: объект 'module' не имеет атрибута 'DIST_L2'

Схожие вопросы были заданы раньше, и я знаю, что эта проблема возникает, когда вы импортируете "что-то", когда ваше имя файла python "something.py". Однако мое имя файла python - segment3.py.

Может ли кто-нибудь помочь мне в этом? Я пытаюсь сделать сегментацию с использованием алгоритма водораздела. Я работаю над Fedora20. Спасибо заранее!

Ответ 1

Следует переписать, как показано ниже:

(dist_transform, labels) = cv2.distanceTransform(opening,cv2.cv.CV_DIST_L2,5) 

Ответ 3

Это поздний ответ, но для того, чтобы пройти через учебник, который вы делаете, вам действительно нужно установить openCV 3.0. Тогда синтаксис в учебнике верен.

Для openCV 3.0:

dist_transform = cv2.distanceTransform(opening, cv2.DIST_L2, 5)

Для openCV 2.x:

dist_transform = cv2.distanceTransform(opening, cv2.cv.CV_DIST_L2, 5)

Ответ 4

Следующая ошибка, с которой вы столкнетесь в завершении учебника, cv2.connectedComponents недоступна. См. OpenCV для Python - объект AttributeError: 'module' не имеет атрибута 'connectedComponents'.

Фокус в том, чтобы установить opencv3, что легко можно сделать с помощью Anaconda с помощью

conda install -c https://conda.binstar.org/menpo opencv3

Ответ 5

cv2.cv.CV_DIST_L2 работает как замена