加强版十六章视频读写

VideoCapture capture(0)用来打开系统摄像头



#include<opencv2/opencv.hpp>

#include<iostream>

using namespace std;

using namespace cv;

int main(int argv, char** argc) {

VideoCapture capture(0);

if (!capture.isOpened()) {

printf("0");

}

namedWindow("frame", WINDOW_AUTOSIZE);

Mat frame;

while (true) {

bool ret = capture.read(frame);

if (!ret)break;

imshow("ret", frame);

char c = waitKey(50);

if (c == 27) {

break;

}

}

waitKey(0);

destroyAllWindows();

}
读取摄像头



读取视频文件

获取帧数等信息

#include<opencv2/opencv.hpp>

#include<iostream>

using namespace std;

using namespace cv;

int main(int argv, char** argc) {

//VideoCapture capture(0);

VideoCapture capture("C:/newword/image/20.avi");

if (!capture.isOpened()) {

printf("0");

}

namedWindow("frame", WINDOW_AUTOSIZE);

int fps = capture.get(CAP_PROP_FPS);

int width = capture.get(CAP_PROP_FRAME_WIDTH);

int heigh = capture.get(CAP_PROP_FRAME_HEIGHT);

int num_of_frame = capture.get(CAP_PROP_FRAME_COUNT);

printf("frame size(f=%d,w=%d,h=%d,m=%d)", fps, width, heigh, num_of_frame);

Mat frame;

while (true) {

bool ret = capture.read(frame);

if (!ret)break;

imshow("ret", frame);

char c = waitKey(50);

if (c == 27) {

break;

}

}

waitKey(0);

destroyAllWindows();

}



读取视频文件或摄像头,将读取视频的保存

#include<opencv2/opencv.hpp>

#include<iostream>

using namespace std;

using namespace cv;

int main(int argv, char** argc) {

VideoCapture capture(0);

//VideoCapture capture("C:/newword/image/20.avi");

if (!capture.isOpened()) {

printf("0");

}

namedWindow("frame", WINDOW_AUTOSIZE);

int fps = capture.get(CAP_PROP_FPS);

int width = capture.get(CAP_PROP_FRAME_WIDTH);

int heigh = capture.get(CAP_PROP_FRAME_HEIGHT);

int num_of_frame = capture.get(CAP_PROP_FRAME_COUNT);

int type = capture.get(CAP_PROP_FOURCC);

printf("frame size(f=%d,w=%d,h=%d,m=%d)", fps, width, heigh, num_of_frame);

Mat frame;

VideoWriter writer("C:/newword/image/232320.mp4", type, fps, Size(width, heigh), true);

while (true) {

bool ret = capture.read(frame);

if (!ret)break;

imshow("ret", frame);

writer.write(frame);

char c = waitKey(50);

if (c == 27) {

break;

}

}

waitKey(0);

destroyAllWindows();

}

相关推荐
CoovallyAIHub几秒前
编码智能体做 CV 任务,实际能力到哪一步了?——五项视觉任务实测解读
深度学习·算法·计算机视觉
听风吹等浪起34 分钟前
ResNet模型进阶改进方案完整集合——计算机视觉从业者的结构化性能增强工具箱
人工智能·计算机视觉
爱打代码的小林37 分钟前
OpenCV 实战:基于 SIFT 特征匹配的图像认证系统
人工智能·opencv·计算机视觉
zzh940771 小时前
大模型压缩与蒸馏技术拆解:GPT-4o与Gemini官网如何实现模型瘦身?
人工智能·深度学习·计算机视觉
Daydream.V1 小时前
OpenCV高端操作——特征检测(附案例实战)
人工智能·opencv·计算机视觉
爱打代码的小林1 小时前
OpenCV 实战:为视频添加椒盐噪声并实现中值滤波去噪
人工智能·opencv·计算机视觉
纤纡.1 小时前
基于 OpenCV 的计算机视觉实战:从图像矫正到指纹识别
人工智能·opencv·计算机视觉
Westward-sun.1 小时前
OpenCV图像特征提取:Harris角点检测与SIFT特征提取实战
人工智能·opencv·计算机视觉
冰封剑心1 小时前
容器参数错误,更换参数
人工智能·计算机视觉·vllm
Coovally AI模型快速验证2 小时前
2.5GB 塞进浏览器:Mistral 开源实时语音识别,延迟不到半秒
人工智能·5g·计算机视觉·开源·语音识别