#!/usr/bin/env python 
# coding=utf-8
#1.编译器声明和2.编码格式声明
#1:为了防止用户没有将python安装在默认的/usr/bin目录，系统会先从env(系统环境变量)里查找python的安装路径，再调用对应路径下的解析器完成操作，也可以指定python3
#2:Python.X 源码文件默认使用utf-8编码，可以正常解析中文，一般而言，都会声明为utf-8编码

import cv2 #引用OpenCV功能包
import numpy as np #引用数组功能包

#读取视频并获取视频帧率、分辨率
cameraCapture = cv2.VideoCapture(0)
fps=int(cameraCapture.get(cv2.CAP_PROP_FPS))
size = (int(cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)),)

#创建新视频
cameraWriter = cv2.VideoWriter(
    "CameraWriterExample.avi", cv2.VideoWriter_fourcc('I','4','2','0'),
    fps, size)

x=10 #水印坐标
y=10 #水印坐标
i=1
step_x=5
step_y=5
succes, frame = cameraCapture.read() #读取视频第一帧

#提示停止方法
print ('Showing camera. Press key "Q" to quit.')
print ('Press key "S" to start recording.')
Quit=0 #是否继续运行标志位
Record=0 #录制视频标志位
while succes and not Quit:
    keycode=cv2.waitKey(1)
    if(keycode==ord('Q')): #如果按下“Q”键，停止运行标志位置1，跳出while循环，程序停止运行
       Quit=1
    if(keycode==ord('S')): #如果按下“S”键，开始录制摄像头视频
       Record=1
    if(keycode==ord('X')): #如果按下“X”键，停止录制摄像头视频
       Record=0

    if(Record):
        #给图片添加水印
        cv2.putText(frame, 'WHEELTEC', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
        cameraWriter.write(frame) #给新视频添加新帧

        #水印坐标变化
        if(x>size[0]):step_x=-5
        if(x<0): step_x=5
        if(y>size[1]):step_y=-5
        if(y<0): step_y=5
        x=x+step_x
        y=y+step_y
        print("第"+str(i)+"帧,")
        i=i+1
        print ('Press key "X" to end recording.')
        print("\n\t")
    cv2.imshow("frame",frame)
    succes, frame = cameraCapture.read() #逐帧读取视频

if succes==0: #提示由于摄像头读取失败停止程序
    print ('Camera disconnect !')
print ('Quitted!') #提示程序已停止
cameraCapture.release() #释放摄像头
cv2.destroyAllWindows() #程序停止前关闭所有窗口
