简体   繁体   中英

module 'cv2' has no attribute 'read'

import cv2 as cv

frameWidth = 640
frameHeight = 800

capture = cv.VideoCapture(0)
capture.set(3, frameWidth)
capture.set(4, frameHeight)
capture.set(10, 140)

while True:
    passed, frame = cv.read()
    cv.imshow('Camera Capture', frame)
    if cv.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
capture.destroyAllWindows()

I've been trying to capture my camera using OpenCV. However it gives the error "module 'cv2' has no attribute 'read'" I looked at various codes and sources including OpenCV's own documentation. They all use the same code without errors. I tried uninstalling and installing opencv and opencv-contrib.

In your section of code:

while True:
    passed, frame = cv.read()
    cv.imshow('Camera Capture', frame)
    if cv.waitKey(1) & 0xFF == ord('q'):
        break

The issue is that you are trying to call read() on the module, rather you want to call read on the cv.VideoCapture object you created called capture so it should be as such.

while True:
    passed, frame = capture.read()
    cv.imshow('Camera Capture', frame)
    if cv.waitKey(1) & 0xFF == ord('q'):
        break

You need to use the VideoCapture to read your cam, instead

passed, frame = capture.read()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM