>>
操作符重载:读取到每一帧#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
VideoCapture capture;
capture.open("E:/Experiment/OpenCV/src/video_003.avi"); // 加载路径,注意是/而不是\
if (!capture.isOpened()){
//cout << "Video could not load ... " << endl;
printf("Video could not load ...."); //效果同上
return -1;
}
Mat frame;
namedWindow("test-show", CV_WINDOW_AUTOSIZE);
while (capture.read(frame)){
imshow("test-show", frame);
char c = waitKey(100); // 每隔100毫秒读取一帧
if (c == 27){ //按Esc键可退出播放
break;
}
}
capture.release(); // 释放资源
waitKey(0);
return 0;
}
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
//VideoCapture capture;
//capture.open("E:/Experiment/OpenCV/src/video_003.avi"); // 加载路径,注意是/而不是\
VideoCapture capture(0);// 调用摄像头
if (!capture.isOpened()){
//cout << "Video could not load ... " << endl;
printf("Video could not load ...."); //效果同上
return -1;
}
// 视频读写是没有声音的
// 获取帧的属性
double fps = capture.get(CV_CAP_PROP_FPS);
printf("FPS:%F", fps);
Size size = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
// -1表示自动选择,保存下来的视频文件较大
//VideoWriter writer("E:/Experiment/ww_demo.avi", -1, 15, size, true);//每秒15帧也是速度很快的了
//MP4的写入方式
VideoWriter writer("E:/Experiment/ww_demo.mp4", CV_FOURCC('D', 'I', 'V', 'X'), 15, size, true);//每秒15帧也是速度很快的了
Mat frame;
namedWindow("test-show", CV_WINDOW_AUTOSIZE);
while (capture.read(frame)){
imshow("test-show", frame);
writer.write(frame);
char c = waitKey(100); // 每隔100毫秒读取一帧
if (c == 27){ //按Esc键可退出播放
break;
}
}
capture.release(); // 释放资源
waitKey(0);
return 0;
}
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
VideoCapture capture;
//capture.open("E:/Experiment/OpenCV/src/video_003.avi");
capture.open("E:/Experiment/ww_demo.mp4");
//VideoCapture capture(0);
if (!capture.isOpened()){
//cout << "Video could not load ... " << endl;
printf("Video could not load ...."); //效果同上
return -1;
}
Mat frame, gray, binary;
namedWindow("test-show", CV_WINDOW_AUTOSIZE);
namedWindow("gray-show", CV_WINDOW_AUTOSIZE);
namedWindow("binary-show", CV_WINDOW_AUTOSIZE);
namedWindow("bitwise_not-show", CV_WINDOW_AUTOSIZE);
while (capture.read(frame)){
imshow("test-show", frame);
// 灰度处理
cvtColor(frame, gray, COLOR_BGR2GRAY);
imshow("gray-show", gray);
//二值化处理
threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
imshow("binary-show", binary);
// 有趣的处理:255-当前值
bitwise_not(frame, frame);
imshow("bitwise_not-show", frame);
char c = waitKey(100); // 每隔100毫秒读取一帧
if (c == 27){ //按Esc键可退出播放
break;
}
}
capture.release(); // 释放资源
waitKey(0);
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务