画星星函数:
#img 图片
#x y 坐标
#size 大小
def darw_star(img,x,y,color,size=40):poly_line=np.array([[x, y-size], [x+int(size/4), y-int(size/4)], [x+size, y-int(size/4)],[x+int(0.375*size),y+int(size/4)],[x+size,y+size],\[x,y+int(0.625*size)],[x-size,y+size],[x-int(0.375*size),y+int(size/4)],[x-size,y-int(size/4)],[x-int(size/4),y-int(size/4)]], np.int32)cv2.polylines(img,[poly_line],True,color,4,16)
代码如下:
import cv2
import numpy as np
import randomimg=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])i=50
j=30
for num in range(6):r = random.randint(0, 255)b = random.randint(0, 255)g = random.randint(0, 255)cv2.ellipse(img,[320,50],[i,j],60,0,60,[b,g,r],4,16)i+=80j+=80i=30
j=10
for num in range(6):r = random.randint(0, 255)b = random.randint(0, 255)g = random.randint(0, 255)cv2.ellipse(img,[320,50],[i,j],60,0,60,[b,g,r],4,16)i+=80j+=80i=70
j=50
for num in range(5):r = random.randint(0, 255)b = random.randint(0, 255)g = random.randint(0, 255)cv2.ellipse(img,[320,50],[i,j],60,0,60,[b,g,r],4,16)i+=80j+=80i=90
j=70
for num in range(5):r = random.randint(0, 255)b = random.randint(0, 255)g = random.randint(0, 255)cv2.ellipse(img,[320,50],[i,j],60,0,60,[b,g,r],4,16)i+=80j+=80def darw_star(x,y,color,size=40):global imgpoly_line=np.array([[x, y-size], [x+int(size/4), y-int(size/4)], [x+size, y-int(size/4)],[x+int(0.375*size),y+int(size/4)],[x+size,y+size],\[x,y+int(0.625*size)],[x-size,y+size],[x-int(0.375*size),y+int(size/4)],[x-size,y-int(size/4)],[x-int(size/4),y-int(size/4)]], np.int32)cv2.polylines(img,[poly_line],True,color,4,16)for i in range(50):darw_star(325,50,[0,255,255],i)
darw_star(325,50,[0,0,0],50)for i in range(40):darw_star(320,200,[0,0,255],i)
darw_star(320,200,[0,0,0],40)for i in range(30):darw_star(370,300,[0,255,255],i)
darw_star(370,300,[0,0,0],30)for i in range(30):cv2.circle(img,(420,450),i,[0,255,0])
cv2.circle(img,(420,450),30,[0,0,0],4,16)for i in range(30):cv2.circle(img,(220,450),i,[0,0,255])
cv2.circle(img,(220,450),30,[0,0,0],4,16)for i in range(30):cv2.circle(img,(200,300),i,[0,255,255])
cv2.circle(img,(200,300),30,[0,0,0],4,16)for i in range(30):cv2.circle(img,(450,300),i,[255,100,0])
cv2.circle(img,(450,300),30,[0,0,0],4,16)for i in range(30):darw_star(340,420,[255,0,255],i)
darw_star(340,420,[0,0,0],30)for i in range(40):darw_star(150,380,[255,100,255],i)
darw_star(150,380,[0,0,0],40)cv2.putText(img,'Merry Christmas',[80,560],cv2.FONT_HERSHEY_SIMPLEX,2,[0,0,255],thickness=4)cv2.imshow('fr',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
尽力了,opencv太难画了
效果如下: