opencv io_error ai_generated true

cv2.error: (-215:Assertion failed) !_src.empty() — imread returned None for valid file path

ID: opencv/imread-returns-none

Also available as: JSON · Markdown
90%Fix Rate
92%Confidence
3Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
4 active

Root Cause

cv2.imread returns None silently when it cannot read the file. Path typo, missing codec, or permission issue.

generic

Workarounds

  1. 95% success Check return value of imread before using the image
    img = cv2.imread(path)
    if img is None:
        raise FileNotFoundError(f'imread failed: {path}')

    Sources: https://docs.opencv.org/4.x/d0/d05/tutorial_dnn_googlenet.html

  2. 90% success Verify the file exists and is a supported format
    import os; assert os.path.isfile(path), f'File not found: {path}'  # also check file is not 0 bytes
  3. 85% success Use absolute path to avoid working directory issues
    img = cv2.imread(os.path.abspath(path))  # relative paths depend on cwd, not script location

Dead Ends

Common approaches that don't work:

  1. Wrap imread in try/except to catch the error 92% fail

    imread does not raise exceptions on failure; it returns None. try/except catches nothing.

  2. Convert path to raw string assuming backslash issue on Linux 78% fail

    Linux uses forward slashes. Raw strings only matter on Windows with backslash paths.