Python 3.9下OpenCV基础命令失效,imread/imshow报错求助
问题解决指南
1. 修复cv.imshow报错
你的代码存在基础逻辑错误:cv.imread(img)读取的图像数据没有赋值给变量,直接把文件名字符串img传给了cv.imshow,但imshow要求传入的是numpy数组格式的图像数据,而非字符串。
修正后的代码:
import cv2 as cv # 读取图像并将数据赋值给变量 img_data = cv.imread("Nemo.jpg") # 先判断图像是否读取成功,避免路径错误或文件损坏导致后续问题 if img_data is not None: cv.imshow("feesh", img_data) # 必须添加waitKey,否则图像窗口会一闪而过 cv.waitKey(0) # 关闭所有OpenCV窗口 cv.destroyAllWindows() else: print("无法读取图像,请检查文件路径是否正确或文件是否损坏")
关键说明:
cv.imread()返回的是图像对应的numpy数组,必须用变量接收后才能传给imshowcv.waitKey(0)用于阻塞程序,让图像窗口保持显示,直到按下任意键关闭- 增加读取判断能快速排查文件路径、文件格式等前置问题
2. 解决「Cannot find reference in 'init.py'」引用问题
这是PyCharm的索引识别异常,和代码逻辑无关,按以下步骤处理:
- 点击PyCharm顶部菜单栏
File→Invalidate Caches...,选择Invalidate and Restart,重启后会重新构建项目索引 - 检查项目Python解释器配置:
File→Settings→Project: [你的项目名]→Python Interpreter,确认选中的是安装了OpenCV的Python 3.9环境 - 右键点击项目根目录,选择
Mark Directory as→Sources Root,让PyCharm正确识别项目源码目录
内容的提问来源于stack exchange,提问作者Yousef Eddin
相关产品推荐
相关产品推荐

