opencv 视频操作

xiaoxiao2021-02-28  162

opencv中有一个VideovCapture类,来对视频进行读取和显示,并且可以通过该类来调用电脑摄像头。

VideoCapture类对象读取视频的方法有初始化和赋值两种,

初始化法 :  VideoCapture cst("biaoge.mp4");

赋值法    :Videocapture cst;  

                   cst.open("biaoge.mp4");

显示视频的方法是创建一个Mat的对象,用于储存每帧的视频图像,然后一帧一帧的循环显示,经实验每帧等待30ms和正常视频同速。

代码:

while(1) { Mat frame; cst >> frame; imshow("audlt video", frame); waitKey(30); } 调用摄像头用到的类还是和调用视频一样,都要用VideoCapture这个类,但是在声明这个对象的时候要用0;

代码:

VideoCapture dst(0); 或:VideoCapture dst; dst.open(0);

因为通过VideoCapture类对视频进行显示是逐帧处理的,所以可以通过这个对视频进行类似于图片的处理。

例如可以通过逐帧的灰度化、均值滤波法、canny图像边缘检测法进行对图像的一系列的处理得到想要的结果。

int main() { Mat edge; VideoCapture dst("biaoge.mp4"); while (1) { Mat pic; dst >> pic; if (pic.empty()) { break; } cvtColor(pic, edge, 0); blur(edge, edge, Size(7, 7)); Canny(edge, edge, 0, 30, 0); imshow("haha", edge); waitKey(30); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-28727.html

最新回复(0)