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

时间:2020-06-16 12:16:43

标签: opencv dnn9

我正在尝试本文;

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

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

导入cv2 从cv2导入dnn_superres

sr = dnn_superres.DnnSuperResImpl_create()

image = cv2.imread('./ input.png')

path =“ EDSR_x3.pb” sr.readModel(path)

sr.setModel(“ edsr”,3)

result = sr.upsample(image)

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()

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

path =“ EDSR_x4.pb” sr.readModel(path)

sr.setModel(“ edsr”,4)

result = sr.upsample(image)

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分支运行我的代码,他遇到了我完全相同的问题。我应该如何解决我所遇到的错误并应用我发现的超分辨率示例?

1 个答案:

答案 0 :(得分:1)

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

如果您这样做了,但仍然不起作用,则可以尝试以下两种方法:

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

  2. source构建OpenCV。不要忘记contrib modules(这是dnn_superres模块所在的位置)。您说您在连接python时遇到问题。我建议使用this tutorial。完成该教程后,请执行以下命令(在您完成sudo make install之后),以链接python库:

sudo ldconfig