基本信息
源码名称:短视频源码phpopencv读取本地视频, 并保存视频帧
源码大小:0.02M
文件格式:.docx
开发语言:C/C++
更新时间:2020-08-20
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
源码在docx文档中,只有片段代码,仅供参考学习

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

using namespace std;
using namespace cv;
int main() {
    const char save_dir[256] = "pics/";
    if (access(save_dir, 0) == -1) {
        cout << "目录不存在, 创建目录" << endl;
        mkdir(save_dir, S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO);
    }
    VideoCapture cap;
    Mat frame;
    frame = cap.open("../output.mp4");
    if(!cap.isOpened()){
        printf("cat open \n");
        return -1;
    }
    int frame_count = 0;
    int save_count = 0;
    while (cap.read(frame) and save_count < 10){
        frame_count  = 1;
        if(frame_count % 30 == 0){
            string save_name = save_dir   to_string(save_count)   ".jpg";
            imwrite(save_name, frame);
            save_count  = 1;
        }
    }
    return 0;
}
import os.path as osp
import os
import cv2

if __name__ == '__main__':

    save_dir = 'pics'
    if not osp.exists(save_dir):
        print('目录不存在, 创建目录')
        os.mkdir(save_dir)
    video_cap = cv2.VideoCapture('../output.mp4')
    fps = video_cap.get(cv2.CAP_PROP_FPS)
    width = video_cap.get(cv2.CAP_PROP_FRAME_WIDTH)  # video width
    height = video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)  # video height
    frame_number = video_cap.get(7)  # number of frames
    duration = int(frame_number // fps)
    
    frame_count = 0
    save_count = 0
    while True and save_count < 10:
        frame_count  = 1
        ret, frame = video_cap.read()
        if ret is False:
            break
        if frame_count % 30 == 0:
            save_name = osp.join(save_dir, str(save_count)   '.jpg')
            cv2.imwrite(save_name, frame)
            save_count  = 1