效果
首先点击几个点作为多边形顶点,按下“e”表示画多边形结束。接下来按下“r”、“y”、“b”三个按键中的任一个选择对应颜色填充多边形。它会慢慢自上往下填充。按照“y”、“b”、“r”能画出下列图形
按下”q”退出
代码
import cv2
import numpy as np
import time
XLine=1000
YLine=700
img = np.zeros((YLine, XLine, 3), np.uint8)#生成背景
pts=[]
z_buffer=np.zeros((XLine,YLine),np.uint32)
z_buffer+=100000 #无穷大
#为了满足需求而设置的值
count=0
def zfunc(x,y):
return x+y
def draw_func(event, x, y, flags, param):
global pts
if event == cv2.EVENT_LBUTTONDOWN:
print('(x:',x,',y:',y,')')
str1 = '(x:'+ str(x) + ',y:'+ str(y) + ')'
#cv2.putText(img,str1 , (x, y), cv2.FONT_HERSHEY_PLAIN,1.0, (0, 0, 255), thickness=1)
cv2.circle(img,(x,y),1,(0,255,0),thickness=1)
pts.append([x,y])
#活性边表与新边表中的节点
class Node:
def __init__(self,xmin,ymax,k1,next=None):
self.x=xmin#也就是x的初始值
self.ymax=ymax
self.k1=k1#也就是δx
self