运行OpenCV超分辨率代码报错:无法打开EDSR_x3.pb模型文件
问题分析与解决:OpenCV无法加载EDSR_x3.pb模型
报错FAILED: fs.is_open(). Can't open "EDSR_x3.pb"本质是OpenCV找不到指定的模型文件,以下是常见原因及对应解决方法:
当前工作目录与脚本目录不一致
即使模型放在脚本所在文件夹,若程序运行时的工作目录不是该文件夹,相对路径会失效。解决时改用绝对路径拼接:import os import cv2 # 获取脚本所在绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接模型文件路径 model_path = os.path.join(script_dir, "EDSR_x3.pb") sr = cv2.dnn_superres.DnnSuperResImpl_create() sr.readModel(model_path)文件名不匹配或存在隐藏后缀
检查模型文件的真实名称:比如下载时浏览器自动添加了.txt后缀(变成EDSR_x3.pb.txt),或者大小写与代码中的不一致(Linux/macOS区分文件名大小写)。直接在文件管理器中查看文件全名,确保代码中的文件名完全一致。模型文件损坏或未完整下载
下载中断会导致文件不完整,OpenCV无法解析。重新下载模型,下载后可对比文件大小与官方提供的数值,或尝试打开文件(正常.pb二进制文件打开后是乱码,空文件或部分内容则说明损坏)。OpenCV Contrib模块安装异常
若Contrib模块未正确安装,dnn_superres功能可能无法正常读取模型。重新安装指定版本的带Contrib的OpenCV:pip uninstall opencv-python opencv-contrib-python pip install opencv-contrib-python==4.7.0.72
内容的提问来源于stack exchange,提问作者EtiNL
相关产品推荐
相关产品推荐

