(丝滑版)Python使用Opencv画一个哆啦A梦(动态),并制作成可执行文件.exe

如果你想直接下载使用:
请点击这里
上代码:

import cv2
import numpy as np

img=np.zeros([640,640,3]).astype(np.uint8)
img=img.ravel()
for i,j in enumerate(img):
    if j==0:
        img[i]=255
img=np.reshape(img,[640,640,3])

##头
for i in range(250):
    cv2.circle(img,[320,320],i,color=[255,0,0],thickness=4,lineType=16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##眼部旁边两条线
for i in range(130):
    cv2.ellipse(img,[320,320],[250,i],180,180,0,[255,255,255],4,16)
    cv2.imshow('frams', img)
    cv2.waitKey(1)
for i in range(180):
    cv2.ellipse(img,[320,320],[250,130],180,i,0,[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##去除蓝色
for i in range(320):
    cv2.ellipse(img,[320,320],[i,i],0,180,0,[255,255,255],4,16)
    cv2.imshow('frams', img)
    cv2.waitKey(1)
for i in range(360):
    cv2.ellipse(img,[320,320],[250,250],0,i,0,color=[0,0,0],thickness=4,lineType=16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##左眼
for i in range(50):
    cv2.ellipse(img,[270,190],[110,i],90,0,360,[255,255,255],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)
for i in range(360):
    cv2.ellipse(img,[270,190],[110,50],90,0,i,[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##左眼中间黑点
for i in range(25):
    cv2.ellipse(img,[270,190],[55,i],90,0,360,[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##左眼眼中反光
for i in range(20):
    cv2.circle(img,[290,170],i,color=[255,255,255],thickness=4,lineType=16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##右眼
for i in range(50):
    cv2.ellipse(img, [370, 190], [110, i], 90, 0, 360, [255, 255, 255], 4, 16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)
for i in range(360):
    cv2.ellipse(img,[370,190],[110,50],90,0,i,[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##鼻子
for i in range(25):
    cv2.circle(img,[320,300],i,color=[0,0,255],thickness=4,lineType=16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)
for i in range(0,360,4):
    cv2.ellipse(img,[320,300],[25,25],90,0,i,color=[0,0,0],thickness=4,lineType=16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##右眼里面

dydx=(320-390)/(200-150)
for i in range(-int((390-320)/dydx)+5):
    cv2.line(img,[320,200],[320+i,200-i],[0,0,0],4,16)
    #[390,150]
    #390-320/dydx
    cv2.imshow('frams',img)
    cv2.waitKey(1)
dydx=(320-390)/(200-250)
for i in range(int((390-320)/dydx)+5):
    cv2.line(img,[320,200],[320+i,200+i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

##鼻子到嘴巴
for i in range(325,460):
    cv2.line(img,[320,325],[320,i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)
for i in range(180):
    cv2.ellipse(img,[320,350],[130,110],0,i,0,[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

# 左边胡子
dydx=(230-110)/(300-250)
for i in range(int((230-110)/dydx)+5):
    cv2.line(img,[230,300],[230-i,300-i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

dydx=(100-330)/(240-320)
for i in range(int((330-100)/dydx)+5):
    cv2.line(img,[240,320],[240-i,320+i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)
# 220/340 110 360

for i in range(130):
    cv2.line(img,[225,320],[225-i,320],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

#右边胡子
dydx=(430-570)/(300-270)
for i in range(-int((570-430)/dydx)+20):
    cv2.line(img,[430,300],[430+i,300-i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

# [420,320] 450 300

for i in range(130):
    cv2.line(img,[420,320],[420+i,320],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

dydx=(410-550)/(340-370)
for i in range(int((550-410)/dydx)+50):
    cv2.line(img,[410,340],[410+i,340+i],[0,0,0],4,16)
    cv2.imshow('frams',img)
    cv2.waitKey(1)

# cv2.imshow('frams',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

(丝滑版)Python使用Opencv画一个哆啦A梦(动态),并制作成可执行文件.exe_第1张图片

你可能感兴趣的:(opencv,python,计算机视觉)