opencv读取视频截图
时间: 2023-09-16 22:09:08 浏览: 96
Opencv读取视频
使用OpenCV读取视频并进行截图的方法可以参考以下代码。首先,需要导入所需的库文件,然后打开视频文件并获取视频的总帧数。接下来,设定所需截图的张数k,并计算出截图的间隔step。然后,通过循环读取视频的每一帧,判断是否为空,如果为空则表示视频已经结束。在每个step帧时进行一次截图,并将截图保存到指定的文件夹中。最后,释放视频文件。
```cpp
#include <iostream>
#include <string>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(void) {
VideoCapture cap;
string file("f:\\1.mp4");
Mat frame;
int i = 0;
cap.open(file); // 打开视频文件
int totalFrameNumber = cap.get(CAP_PROP_FRAME_COUNT); // 获取视频总帧数
int k = 50; // 设定截图张数
int step = totalFrameNumber / k;
int j = 0;
while (1) {
cap >> frame; // 读取一帧
if (frame.empty())
break; // 帧空,则表明视频读到了结尾了
if (j % step == 0)
imwrite(file + "_" + to_string(j/step) + ".jpg", frame); // 结合原视频名称以及截图标号,对截图进行命名,并保存
j++;
}
cap.release(); // 及时释放视频文件
return 0;
}
```
以上是使用C++和OpenCV库实现读取视频并进行截图的方法。如果要使用Python实现类似功能,可以使用Python-OpenCV库来读取视频和进行截图。可以参考如下代码:
```python
import cv2
cap = cv2.VideoCapture('f:\\1.mp4')
totalFrameNumber = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
k = 50
step = totalFrameNumber // k
j = 0
while True:
ret, frame = cap.read()
if not ret:
break
if j % step == 0:
cv2.imwrite('f:\\1_' + str(j//step) + '.jpg', frame)
j += 1
cap.release()
```
通过上述代码,你可以使用OpenCV库读取视频并进行截图。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [opencv读取视频并对视频进行自动截图保存形成简单摘要](https://blog.csdn.net/qq_25847123/article/details/100148075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [使用python-opencv读取视频,计算视频总帧数及FPS的实现](https://download.csdn.net/download/weixin_38612648/12857346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文