我按照GeeksforGeeks教程操作OpenCV仍报错是什么原因?
错误原因
- 报错中的
!_src.empty()断言失败,本质是cv2.imread()没有成功读取到图片,返回了空值。你代码中cv2.imread()用的是相对路径beach.jpg,程序会默认从当前脚本的运行工作目录查找图片,而你实际的图片存放在C:\\Users\\farha\\Downloads\\WALLPAPER\\路径下,路径不匹配导致读取失败,后续imshow调用空对象触发了报错。
解决方法
- 方案1:给
cv2.imread()传入图片的完整绝对路径,路径可以用双反斜杠转义,或者加r前缀避免转义冲突,示例代码:
import cv2 # 写法1:双反斜杠转义路径 image = cv2.imread("C:\\Users\\farha\\Downloads\\WALLPAPER\\beach.jpg", cv2.IMREAD_COLOR) # 写法2:加r前缀的原始字符串,不用手动转义 # image = cv2.imread(r"C:\Users\farha\Downloads\WALLPAPER\beach.jpg", cv2.IMREAD_COLOR) if image is None: print("图片读取失败,请检查路径是否正确") else: # imshow第一个参数是窗口名,可自定义,不需要写完整路径 cv2.imshow("beach", image) cv2.waitKey(0) cv2.destroyAllWindows()
- 方案2:将
beach.jpg文件复制到你当前运行的Python脚本所在的同级目录下,保持原来的相对路径写法即可正常读取。 - 方案3:如果需要批量处理同目录下的图片,可以先切换工作目录到图片存放路径,再用相对路径读取:
import cv2 import os # 切换工作目录到图片存放文件夹 os.chdir(r"C:\Users\farha\Downloads\WALLPAPER") image = cv2.imread("beach.jpg", cv2.IMREAD_COLOR)
内容的提问来源于stack exchange,提问作者Han Izza
相关产品推荐
相关产品推荐

