“第一次作业”这是以前在github的博客内容,发过来充实一下
第一次作业:
第一次作业要求如下:
对输入的一个彩色视频与五张以上照片,用OpenCV实现以下功能或要求:
1)命令行格式: “xxx.exe 放视频与照片的文件夹路径” ,(例如MyMakeVideo.exe C:\input )[假设该文件夹下只有一个avi视频文件与若干jpg文件]
2) 将输入的视频与照片处理成同样长宽后,合在一起生成一个视频
3) 这个新视频中,编程生成一个片头,然后按幻灯片形式播放这些输入照片
最后按视频原来速度播放输入的视频
4) 新视频中要在底部打上含自己学号与姓名等信息的字幕
5) 有能力的同学,可以编程实现镜头切换效果
##实验环境
Python3.6+opencv3
##实验步骤
1)考虑到要使用命令行参数,所以首先了解了有关怎么读取命令行参数
命令行参数的读取
命令行参数的读取采用了Python中的sys模块以及getopt模块
if __name__ == "__main__":
main(sys.argv[1:])
以上两行程序表示当该文件被当做主函数运行时,调用main函数并把sys.argv中的参数传入main函数,其中sys.argv[0]是打开文件的文件名,之后的为命令行参数。
输入的sys.argv[]在main函数中被调用,调用中使用了getopt,调用方法如下
def main(argv):
opts,args = getopt.getopt(argv,"")
其中返回的opts为操作名,在一般的编程中可能是 –h,-o之类的字符;返回的args为操作名之后跟的参数,在本次作业中,没有操作名,因此opts返回为空,args返回为地址。
2)获得了地址,接下来需要通过这个地址得到地址中的图片与视频
这主要用了python中的os模块
以下是获得图片文件的程序:
Const_Image_Format = [".jpg",".jpeg",".bmp",".png"]
定义图片的后缀:
class FileFilt:
def __init__(self):
self.fileList = []
self.counter = 0
def FindFile(self,dirr,fileformat,filtrate = 1):
f