openCV学习笔记三:摄像头/视频的读取并简单处理

VideoCapture读取视频或摄像头
VideoWriter写入视频到本地
读取摄像头并利用Canny算法做边缘检测处理,代码如下:

#include
#include <cv.h>
#include <highgui.h>
#include <windows.h>

using namespace std;
using namespace cv;

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

VideoCapture mv(0);
Mat frem;
Mat DstPic, edge, grayImage;

while (1)
{
mv >> frem;
imshow(“chuankou”, frem);

//创建与src同类型和同大小的矩阵
DstPic.create(frem.size(), frem.type());
//将原始图转化为灰度图
cvtColor(frem, grayImage, COLOR_BGR2GRAY);
//先使用3*3内核来降噪
blur(grayImage, edge, Size(3, 3));
//运行canny算子
Canny(edge, edge, 3, 9, 3);
//cvtColor(frame, frame, CV_BGR2HSV); //颜色空间转换到HSV
imshow(“边缘提取效果”, edge);
waitKey(50);
}
return 0;
}
openCV学习笔记三:摄像头/视频的读取并简单处理运行结果如下:

openCV学习笔记三:摄像头/视频的读取并简单处理
VideoWriter 写入视频用法如下:

VideoWriter writer(“E:\out.avi”, //文件名
-1, //编解码器,写入视频前需安装对应的编解码器。
//这里填-1,不指定编解码方式,程序运行时会跳出窗口让我们选择
cap.get(CV_CAP_PROP_FPS),//播放帧率
size0,//帧尺寸,生成视频尺寸需与读取视频尺寸一致
//若不一致,则写入的视频会出错。
false);//是否创建彩色视频,生成视频是否支持彩色应与构造函数设置一致
//因为后面进行candy检测,每一帧都变成了黑白二值图像,所以这里应填false
//如果填true,则写入的视频会出错