ImportError: невозможно импортировать имя «dnn_superres» для примера суперразрешения Python с opencv

Я пытаюсь запустить пример масштабирования изображений со следующего сайта: https://towardsdatascience.com/deep-learning-based-super-resolution-with-opencv-4fd736678066

Это код, который я использую:

import cv2
from cv2 import dnn_superres

# Create an SR object
sr = dnn_superres.DnnSuperResImpl_create()

# Read image
image = cv2.imread('butterfly.png')

# Read the desired model
path = "EDSR_x3.pb"
sr.readModel(path)

# Set the desired model and scale to get correct pre- and post-processing
sr.setModel("edsr", 3)

# Upscale the image
result = sr.upsample(image)

# Save the image
cv2.imwrite("./upscaled.png", result)

Я загрузил уже обученную модель с веб-сайта под названием «EDSR_x3.pb», и когда я запускаю код, я получаю следующую ошибку:

Traceback (most recent call last):
  File "upscale.py", line 2, in <module>
    from cv2 import dnn_superres
ImportError: cannot import name 'dnn_superres'

Теперь мне кажется, что такого метода или класса нет, но я уже установил opencv и модули contrib. Почему я получаю эту ошибку?


person Al Jenssen    schedule 11.04.2020    source источник
comment
Какая у вас opencv версия?   -  person Giorgos Myrianthous    schedule 11.04.2020
comment
Python 3.7.4 Opencv 4.2.0   -  person Al Jenssen    schedule 11.04.2020


Ответы (5)


У меня была такая же проблема с Python 3.6.9 и opencv 4.2.0, но после обновления до 4.3.0 проблема исчезла. Если у вас нет проблем с обновлением версии, попробуйте 4.3.0.

person Paseul    schedule 13.04.2020
comment
opencv 4.3.0 нельзя установить через pip, так как он еще недоступен - person Al Jenssen; 19.05.2020

Ключ находится в документации для opencv-python. dnn_superres — это дополнительный модуль, который требует установки opencv-contrib-python.

pip install opencv-contrib-python

person swalters    schedule 05.10.2020

ваша версия opencv должна быть opencv4.2.0+, тот же вопрос: https://github.com/opencv/opencv_contrib/issues/2544

решение:

pip install --upgrade opencv-python
pip install --upgrade opencv-contrib-python
person zhicheng duan    schedule 14.08.2020

С этой даты, чтобы добавить что-то к текущему принятому ответу:

Если вы делаете это в своей локальной системе:

Если у вас есть

opencv-python

вам нужно сначала удалить его, вы можете проверить, есть ли у вас вышеуказанный пакет или нет, с помощью команды:

pip show opencv-python

если он у вас есть, сначала удалите его,

pip uninstall opencv-python

и установить

opencv-contrib-python

by

pip install opencv-contrib-python

по умолчанию он загрузит последнюю версию, но все равно проверит версию с помощью команды show выше для opencv-contrib-python на этот раз, просто чтобы проверить версию выше opencv4. 2.0+, чтобы принудительно загрузить конкретную версию, выполните следующее: pip install package_name==version_number

Если вы делаете это в Google Colab:

opencv-python уже установлен в colab, но его версия 4.1.2, вы можете проверить это:

import cv2
cv2.__version__

вам не нужно удалять его, вам просто нужно установить opencv-contrib-python, но если вы устанавливаете:

!pip install opencv-contrib-python

Он не установит его, по умолчанию он будет использовать тот же предустановленный opencv

поэтому запустите это:

!pip install opencv-contrib-python==

который выведет все доступные версии для colab, просто выберите любую версию 4.3.x или выше и запустите снова, например:

!pip install opencv-contrib-python==4.3.0.36

person Arnav Das    schedule 15.12.2020

Запустите приведенные ниже команды в свой терминал.

pip install --upgrade opencv-contrib-python
pip install --upgrade opencv-python

Затем перезапустите ядро ​​ноутбука Jupyter или повторно активируйте виртуальную среду, чтобы обновленный пакет можно было использовать должным образом.

person Amar Kumar    schedule 20.04.2021