导入错误:无法为使用 opencv 的超分辨率 Python 示例导入名称“dnn_superres”

Al *_*sen 8 python opencv neural-network opencv-contrib

我正在尝试从以下网站运行一个放大图像的示例: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)
Run Code Online (Sandbox Code Playgroud)

我已经从网站上下载了已经训练好的模型,名为“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'
Run Code Online (Sandbox Code Playgroud)

我现在似乎没有这样的方法或类,但我已经安装了 opencv 和 contrib 模块。为什么我会收到这个错误?

小智 10

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

pip install opencv-contrib-python


zhi*_*uan 5

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

解决方案:

pip install --upgrade opencv-python
pip install --upgrade opencv-contrib-python
Run Code Online (Sandbox Code Playgroud)


Arn*_*Das 5

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

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

如果你有

OpenCV-Python

您需要先卸载它,您可以通过命令检查是否有上述软件包:

pip show opencv-python

如果有,请先卸载它

pip uninstall opencv-python

并安装

opencv-contrib-python

经过

pip install opencv-contrib-python

默认情况下,它会下载最新版本,但这次仍然通过上面的opencv-contrib-python show命令检查版本,只是为了检查版本是否高于 opencv4.2.0+,要强制下载特定版本,请执行以下操作: pip安装包名==版本号

如果您在 Google Colab 中执行此操作:

opencv-python已经安装在 colab 中,但版本是4.1.2,你可以通过以下方式检查:

import cv2
cv2.__version__
Run Code Online (Sandbox Code Playgroud)

你不需要卸载它,你只需要安装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


小智 4

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