# -*- coding: utf-8 -*-
"""
Created on Thu Nov 15 13:48:24 2018

@author: zhulifu
"""
import cv2
import numpy as np

capture = cv2.VideoCapture(0)

while(True):
    # 获取一帧
    ret, thredhold = capture.read()
    # 将这帧转换为灰度图
#    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
#    _ ,thredhold = cv2.threshold(gray,150,255,cv2.THRESH_BINARY)
    ###################划线###################
# =============================================================================
    green = (0,215,0)
    cv2.line(thredhold,(200,20),(200,400),green,8)
# =============================================================================
    ###################划圆###################
# =============================================================================
    (centerx,centery) = (thredhold.shape[1]//2,thredhold.shape[0]//2)
    white = (221,19,23)
    for r in range(0,175,25):
        cv2.circle(thredhold,(centerx,centery),r,white,4)
# =============================================================================
    ###################矩形与填充圆###################
# =============================================================================
    red = (123,231,12)
    cv2.rectangle(thredhold,(100,200),(200,400),red,4)
    cv2.circle(thredhold,(447,63),63,(0,0,255),-1)##-1为填充
# =============================================================================
    ###################随机填充圆圆###################
# =============================================================================
#     for i in range(25,125):
#         radius = np.random.randint(5,high = 200)
# #        color = np.random.randint(0, high=255, size=(3,))
#         color = (12,34,56)
#         pt = np.random.randint(0, high=300, size=(2,))
#         cv2.circle(thredhold,tuple(pt), radius, color, -1)
# =============================================================================
    ###################画椭圆###################
# =============================================================================
    cv2.ellipse(thredhold,(256,256),(100,50),0,232,0,255,-1)
    cv2.ellipse(thredhold,(156,156),(100,50),0,0,180,255,3)
    cv2.ellipse(thredhold,(356,356),(100,50),0,0,360,255,8)
# =============================================================================
    ###################画多边形###################
# =============================================================================
#     thredhold=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)##需要指点每个顶点的坐标。用这些点的坐标构建一个大小等于行数 X1X2 的数组，行数就是点的数目。
                                                                    ##这个数组的数据类型必须为 int32。这里画一个黄色的具有四个顶点的多边形。
#     thredhold=thredhold.reshape((-1,1,2))
# =============================================================================
    ###################写入英文文字###################
# =============================================================================
    font=cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(thredhold,"opencv",(100,300),font,4,(255,0,255),2)
# =============================================================================
    ###################写入汉语文字###################
# =============================================================================
    from PIL import Image,ImageDraw,ImageFont
    thredhold = Image.fromarray(thredhold)
    draw = ImageDraw.Draw(thredhold)
    font = ImageFont.truetype("simhei.ttf",50,encoding="utf-8")#参数1：字体文件路径，参数2：字体大小；Windows系统“simhei.ttf”默认存储在路径：C:\Windows\Fonts中
    draw.text((0,0),"中科院自动化所",(255,0,0),font=font)
    thredhold = cv2.cvtColor(np.array(thredhold),cv2.COLOR_RGB2BGR)
# =============================================================================

    
    cv2.imshow('frame', thredhold)
    if cv2.waitKey(1) == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()

