本篇简要说明OpenCV中VideoCapture类的相关问题,可以解决一些如视频文件可以正常使用播放器播放,但不能使用OpenCV完整获取每一帧的情况.
一、对于OpenCV中的VideoCapture类的简单说明
VideoCapture既支持从视频文件(.mp4/.avi /.mpg/...)读取,也支持直接从摄像机(比如电脑自带摄像头)中读取,要想获取视频需要先创建一个VideoCapture对象,
- Python示例
# Python 对视频的读取
import cv2 # pip install opencv-python
cap = cv2.VideoCapture("./test_video.mp4")
ret,frame = cap.read()
2. C++示例
// C++ 对视频读取
cv::VideoCapture capture("./test_video.mp4");
cv::Mat frame;
// 方法一
capture.read(frame);
// 方法二
capture.grab();
// 方法三
capture.retrieve(frame);
// 方法四
capture >> frame;