I can't call the video that is stored in my laptop using VideoCapture() method of opencv.
If I write: cap = cv2.VideoCapture(0)
, my code works properly. but whenever I write cap = cv2.VideoCapture('C:\Users\Anjali\Documents\Python_Files\Video_tracking\slow.mp4')
, it does't work.
Below is my code:
import cv2
import numpy as np
cap = cv2.VideoCapture('C:\Users\Anjali\Documents\Python_Files\Video_tracking\slow.mp4')
while (True):
ret, frame = cap.read()
#gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('Frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
It gives the following error, please help me in this:
cv2.imshow('Frame', frame)
error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
i guess, your capture did not open (it did not like the codec), thus your frame was empty, thus imshow() complains.
please, be wise and add checks:
if not cap.isOpened(): raise Exception("it did not find or did not like your movie")
if frame==None: raise Exception("empty image detected")
Yeah, it is not capturing my video. So, what to do with this? My path is correct I have checked it.
so, then attack the codec problem. mp4 is only the container, there will be some variant of divx xvid or such codec used. e.g. you could go here and try some package, like the LAV one.
also make sure, that python can find your opencv_ffmpegxxx.dll
hey berak, I saw FOURCC.. and downloaded and installed 3IV1 for my windows and mp4 video. now what? how to use this? please help me.
Please anyone help me in this...
Have you tried to display the only if the frame is not empty? Maybe there are some empty frames for some reason