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.
CodePudding user response:
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
CodePudding user response:
You need to use the VideoCapture to read your cam, instead
passed, frame = capture.read()