【问题标题】:ImportError: cannot import name 'dnn_superres' for python example of super resolution with opencvImportError: cannot import name 'dnn_superres' for python example of super resolution with opencv
【发布时间】:2020-07-24 08:01:40
【问题描述】:

我正在尝试从以下网站运行一个用于放大图像的示例: 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 模块。为什么会出现此错误?

【问题讨论】:

  • 你有什么opencv 版本?
  • Python 3.7.4 Opencv 4.2.0

标签: python opencv neural-network opencv-contrib


【解决方案1】:

关键在于 opencv-python 的 documentation。 dnn_superres 是一个额外的模块,需要你安装 opencv-contrib-python

pip install opencv-contrib-python

【讨论】:

    【解决方案2】:

    你的opencv版本应该是opencv4.2.0+,同样的问题: https://github.com/opencv/opencv_contrib/issues/2544

    解决方案:

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

    【讨论】:

      【解决方案3】:

      我在 Python 3.6.9 和 opencv 4.2.0 遇到了同样的问题,但是升级到 4.3.0 后问题就消失了。如果升级版本没问题,试试4.3.0。

      【讨论】:

      • opencv 4.3.0 无法通过 pip 安装,因为它尚不可用
      【解决方案4】:

      截至目前,为当前接受的答案添加一些内容:

      如果您在本地系统中执行此操作:

      如果你有

      opencv-python

      你需要先卸载它,你可以通过命令检查你是否有上面的包:

      pip show opencv-python

      如果有,请先卸载

      pip uninstall opencv-python

      并安装

      opencv-contrib-python

      通过

      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

      【讨论】:

      • 在卸载两者并仅重新安装 opencv-contrib-python 后为我完成了此操作。
      【解决方案5】:

      在终端中运行以下命令

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

      然后,重启你的 Jupyter notebook 内核或重新激活你的虚拟环境,以便更新的包可以正常使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-13
        • 2011-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-20
        • 2023-03-26
        相关资源
        最近更新 更多