cv2.error:OpenCV(4.3.0)../opencv_contrib/modules/dnn_superres/src/dnn_superres.cpp:97:错误:(-2:未指定错误)未指定模型

pys*_*r33 3 opencv dnn9

我正在尝试这篇文章;

https://towardsdatascience.com/deep-learning-based-super-resolution-with-opencv-4fd736678066

这是从文章中复制出来的代码;

导入 cv2 从 cv2 导入 dnn_superres

sr = dnn_superres.DnnSuperResImpl_create()

图像 = cv2.imread('./input.png')

路径 = "EDSR_x3.pb" sr.readModel(路径)

sr.setModel("edsr", 3)

结果 = sr.upsample(图像)

cv2.imwrite("./upscaled.png", 结果)

我也尝试过opencv超分辨率教程;

https://docs.opencv.org/master/d5/d29/tutorial_dnn_superres_upscale_image_single.html

导入 cv2 从 cv2 导入 dnn_superres

sr = dnn_superres.DnnSuperResImpl_create()

图像 = cv2.imread('./image.png')

路径 = "EDSR_x4.pb" sr.readModel(路径)

sr.setModel("edsr", 4)

结果 = sr.upsample(图像)

cv2.imwrite("./upscaled.png", 结果)

我的环境是anaconda3 opencv 4.3.0。我要么从标题中得到错误,要么在运行 opencv 示例时被“杀死”。

*我的文件目录都和示例代码在同一层。我只想更改图像文件名。我确实尝试从 cmake 编译 opencv 和 opencv_contrib 但是,我不知道如何让 python 从源代码引用 opencv 和 opencv_contrib 。如果按照此文档从源代码安装 opencv; https://d *ocs.opencv.org/3.4/d2/de6/tutorial_py_setup_in_ubuntu.html

我选择使用 opencv 4.3.0 的 anaconda 包装,因为我遇到了太多依赖项和错误安装包的问题。

我来自一次聚会的朋友成功地应用了文章中的代码,就像文章中描述的那样,而我试图使用 anaconda 环境准确地遵循他所做的事情。我的问题是否源于我的虚拟环境或 opencv 软件包版本或代码本身?我确实有另一位同事从我的 github 分支运行我的代码,他也遇到了与我完全相同的问题。我应该如何解决我遇到的错误并应用我发现的超分辨率示例?

小智 5

错误“未指定型号”来自网络为空的事实。您必须实际下载模型,然后提供“sr.readModel()”函数的路径。

如果您这样做了但仍然不起作用,您可以尝试以下两件事:

  1. 尝试使用较小的图像(.png 格式)。

  2. 从源代码构建 OpenCV 。不要忘记contrib 模块(这是 dnn_superres 模块所在的位置)。你说你链接 python 时遇到问题。我建议使用本教程。遵循该教程后,执行以下命令(在您已经执行过之后sudo make install)来链接 python 库:

sudo ldconfig