视频显示之二
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
// 读入
//VideoCapture capture("picture/1.mkv");
//调用摄像头(调用了自己电脑的摄像头)
VideoCapture capture(0);
if (!capture.isOpened())
{
cout << "视频打开错误" << endl;
return -1;
}
//获取帧数
long nTotalFrame = capture.get(CV_CAP_PROP_FRAME_COUNT);
cout << "视频帧数是:" << nTotalFrame << endl;
//帧率
int frameRate = capture.get(CV_CAP_PROP_FPS);
cout << "视频帧率是:" << frameRate<<endl;
long nCount = 1; //记录帧号
//循环每一zhen
while (1)
{
cout << "当前帧号是:" << nCount << endl;
Mat frame;
capture >> frame; //读取当前针
imshow("读取视频", frame);
if (char(waitKey(30)) == 'q') //延时30ms,//按下键盘Q,退出
break;
nCount++;
}
//释放视频
capture.release();
return 0;
}
视频显示之三
主要是利用摄像头读入视频,并对视频做边缘检测
//#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
//摄像头读入视频
VideoCapture capture(0);
Mat edges;
while (1)
{
Mat frame;
capture >> frame;
//将原图转换为灰度图
cvtColor(frame, edges, CV_BGR2GRAY);
imshow("灰度", edges);
//双边滤波降噪
blur(edges, edges, Size(7, 7)); //?7?2*3+1
Canny(edges, edges, 0, 30, 3);
imshow("边缘检测后的视频", edges);
if (char (waitKey(30)) == 'q')
break;
}
return 0;
}