11

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

4

5 回答 5

11

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

pip install opencv-contrib-python

于 2020-10-05T17:40:08.157 回答
6

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

解决方案:

pip install --upgrade opencv-python
pip install --upgrade opencv-contrib-python
于 2020-08-14T08:18:50.880 回答
4

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

于 2020-04-13T08:31:12.467 回答
3

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

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

如果你有

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安装包名==版本号

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

colab 中已经安装了opencv-python但版本是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

于 2020-12-15T14:10:00.107 回答
3

在终端中运行以下命令

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

然后,重新启动您的 Jupyter 笔记本内核或重新激活您的虚拟环境,以便可以正确使用更新的软件包。

于 2021-04-20T09:37:17.160 回答