opencv进行视频读取和调用摄像头以及对采集到的图像进行闭环处理_libtorch和opencv读取一段视频并进行处理

控制帧数
waitKey(delay);delay是控制图像显示的帧数
摄像头在开始的时候一直是处于调用状态就是不显示图像,这个可能是系统问题,经过查阅资料表明是dll文件没有粘贴到system文件中;
所对应的程序为:
#include<opencv2\opencv.hpp>
#include<opencv2\video\video.hpp>
using namespace cv;
int main()
{
VideoCapture capture(0);
<//capture.open>(0);
while(1)
{
Mat frame;
capture>>frame;
imshow(“电脑的摄像头采集”,frame);
waitKey(30);
}
return 2;
}
在Opencv中有一个VideoCapture类,来对视频显示以及调用摄像头。
VideoCapture是新增加的一个类文件对应之前CvCapture的一个结构体,VideoCapture也相当于是一个结构体,提供了从摄像机或视频文件捕获视频的C++接口,作用是从视频文件或者从摄像头捕获视屏并显示出来
1.对于结构体的调用有两种一种是常规的:
先实例化再初始化
1.VideoCapture capture;
定义结构体
2.capture.open(“视频文件”);
调用结构体中的枚举
2.另一种是一针见血的:
在实例化的同时在初始化
3.VideoCapture capture(“视频文件”);
第一种的简单理解是: int a;
a=1;
第二种的简单理解是: int a=1;
3.视屏读入到VideoCapture类中,紧接着一个循环将每一帧显示出来,利用循环来显示每一帧图像,
while(1){

               Mat frame;  定义一个Mat变量,用于存储每一帧图像循环进行显示
               capture>>frame;读取当前帧,把视频分成若干帧,起读取作用
               imshow("文件名",frame);  把每一帧图像显示出来
               waitKey(30);   把每一帧图像以30ms的速度连续起来成为视屏;                   

}
所依程序为:读取视频文件
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture;
capture.open(“e336ac53b560a9537e40e7bfac210f85.mp4”);
while(1)
{
Mat frame;
capture>>frame;
if(frame.empty())
{
break;
}
imshow(“快播”,frame);
waitKey(10);
}
return 0;
}

对摄像头采集到的图像进行图像处理:简言之就是机器视觉加图像处理了具体的实现过程有如下代码来做的:
1.调用opencv的头文件;
2.以cv来对程序空间进行命名处理
3.进入主函数
1.调用摄像头
2.定义存储图像的各种变量
3.利用循环来显示摄像头采集的每一帧图像,对每一帧图像进行灰度变换,灰度变换之后进行均值滤波对图像做模糊处理,最后利用Canny算子提取图像的边缘,等待按键的按下,控制图像采集的帧数。和摄像头采集图像的区别就是采集到图像之后对图像进行了相关计算
程序如下:
#include <opencv2/video/video.hpp>
using namespace cv;
int main()
{
VideoCapture capture(0);
<//capture.open>(0);
Mat edge;
while(1)
{
Mat frame;
capture>>frame;
cvtColor(frame,edge,CV_BGR2GRAY);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值