I’ve tried to save an image using OpenCV to a specified folder in the past days however i constantly find this error:
Traceback (most recent call last):
File "C:UsershimikDesktop[REDACTED][REDACTED]IMGTEST.py", line 3, in <module>
cam = VideoCapture(0) # 0 -> index of camera
NameError: name 'VideoCapture' is not defined
My code is below:
from cv2 import *
cam = VideoCapture(0)
s, img = cam.read()
if s:
namedWindow("cam-test",CV_WINDOW_AUTOSIZE)
imshow("cam-test",img)
waitKey(0)
destroyWindow("cam-test")
imwrite("filename.jpg",img)
Any suggestions or ideas on how to solve my issue? Edit: removed irrelevant information!
Advertisement
Answer
Basically the issue is with your from cv2 import *. I’ll just point you to the internet as to why you shouldn’t us import *.
FE. this medium article has a nice write-up. Be sure to follow the links in that article as well.
There are two easy fixes available. First, import cv2 into its proper namespace.
import cv2 as cv
cam = cv.VideoCapture(0)
s, img = cam.read()
if s:
cv.namedWindow("cam-test")
cv.imshow("cam-test",img)
cv.waitKey(0)
cv.destroyWindow("cam-test")
cv.imwrite("filename.jpg",img)
Option 2, import specific parts from cv2. Note that I would very strongly advise to use option 1 here.
from cv2 import (VideoCapture, namedWindow, imshow, waitKey, destroyWindow, imwrite)
cam = VideoCapture(0)
s, img = cam.read()
if s:
namedWindow("cam-test")
imshow("cam-test",img)
waitKey(0)
destroyWindow("cam-test")
imwrite("filename.jpg",img)