开发软件说明
使用OpenCV,对输入的一段彩色视频,用OpenCV实现以下功能或要求:
1. 对输入视频的每一帧图像都用同一个阈值进行二值化;
2. 在每帧二值化图像上叠加上含自己学号与姓名等信息的版权字幕;
3. 在处理的过程中,实时显示每帧图片处理之后的效果;
4. 将所有这些二值化图像按视频原来顺序合成输出一个视频文件,按原输入视频播放速度的两倍合成;
5. 做成如下的命令行格式,xxx.exe 输入视频文件名 二值化阈值 输出视频文件名(例如 MyBiVideo.exe input.avi 50 output.avi )
自己实现的算法具体步骤
因为要将参数传入程序,在程序开始时判断参数的个数是否为4。将后三个参数(argv[1],argv[2],argv[3])作为输入视频文件名、二值化阈值、输出视频文件。其中二值化阈值应通过atof函数转化为浮点型。
使用cvCreateFileCapture得到相应的输入视频文件的CvCapture指针。通过cvGetCaptureProperty得到视频的fourcc,fps,size,frame_count等参数。
根据获得的参数,使用cvCreateVideoWriter创建输出的视频。其他参数与输入视频一样,名称用argv[3],FOURCC用DIVX,fps是原来fps的两倍。
使用cvNamedWindow开启一个窗口。
使用cvQueryFrame一遍遍地获取输入视频中的帧,直到取到NULL为止。用取到的图像的size和depth构造灰度图和二值图。使用cvCvtColor函数把原图转化为灰度图(第三个参数