You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中cv2.imread()返回None的问题求助

解决cv2.imread()返回None的问题

你的代码里cv2.imread()返回None,核心问题是路径转义错误,再加上缺少窗口显示的必要代码,以下是具体解决步骤:


核心修复:路径转义问题

Windows路径中的\在Python字符串里是转义字符(比如\N会被解析为特殊字符),导致实际读取的路径和输入不一致。可以用三种方式修复:

  • 使用双反斜杠:"D:\\Python\\New folder\\apple.png"
  • 使用原始字符串(推荐):r"D:\Python\New folder\apple.png"
  • 使用正斜杠:"D:/Python/New folder/apple.png"

额外检查项

  1. 验证文件存在:先确认文件路径是否正确,避免文件名拼写错误(比如大小写、后缀名),可以用os.path.exists()做前置检查
  2. 图片格式与权限:确保图片是OpenCV支持的格式(PNG、JPG等),且当前程序有读取该文件的权限
  3. 窗口显示修复:原代码缺少cv2.waitKey(),即使读取到图片,窗口也无法正常显示

修改后的完整代码

from numpy import asarray
from mss import mss
import cv2
import time
import pyautogui
import imageio.v3 as iio

import os
import shutil

def vision():
    cords = (400,400,1100,400)
    # 使用原始字符串避免转义问题
    mark_path = r"D:\Python\New folder\apple.png"
    
    # 检查文件是否存在
    if not os.path.exists(mark_path):
        print(f"错误:文件 {mark_path} 不存在")
        return
    
    mark = cv2.imread(mark_path)
    
    if mark is None:
        print("错误:无法读取图片,请检查格式或文件权限")
        return
    
    cv2.imshow("OpenCV Image", mark)
    cv2.waitKey(1)  # 必须调用此函数才能显示窗口
    
while True:
    vision()
    time.sleep(0.1)  # 添加延时,避免循环占用过多资源

内容的提问来源于stack exchange,提问作者Mint3Ds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:25:03