怎么创建一个画彩色图形的画板(python)?

2025-11-06 11:35:24

1、代码如下。

怎么创建一个画彩色图形的画板(python)?

2、效果如下。

怎么创建一个画彩色图形的画板(python)?

3、用鼠标作图,可以调用一个自定义函数实现:

def draw(event,x,y,flags,param):

    r=cv2.getTrackbarPos('R','a')

    g=cv2.getTrackbarPos('G','a')

    b=cv2.getTrackbarPos('B','a')

    color=(b,g,r)

    global ix,iy,drawing,m

    if event==cv2.EVENT_LBUTTONDOWN:

        drawing=True

        ix,iy=x,y

    elif event==cv2.EVENT_MOUSEMOVE and flags==cv2.EVENT_FLAG_LBUTTON:

        drawing==True

        if m==True:

            cv2.rectangle(img,(ix,iy),(x,y),color,-1)

        else:

            cv2.circle(img,(x,y),3,color,-1)

    elif event==cv2.EVENT_LBUTTONUP:

        drawing==False

按下鼠标左键并拖动,并且模式m为真,则在画板里面画矩形;

按下鼠标左键并拖动,并且模式m为假,则在画板里面画一串半径为3的小圆;

抬起鼠标,这个过程结束;

这里的逻辑关系还是很明确的。

怎么创建一个画彩色图形的画板(python)?

4、img=np.zeros((512,512,3),np.uint8) #创建3通道的图片

cv2.namedWindow('a')   #创建图片窗口

cv2.createTrackbar('R','a',0,255,nothing)  #插入调色滑动条

cv2.createTrackbar('G','a',0,255,nothing)

cv2.createTrackbar('B','a',0,255,nothing)

cv2.setMouseCallback('a',draw)  #捕获鼠标拖动的坐标值

while(1):

    cv2.imshow('a',img)

    k=cv2.waitKey(1)&0xFF

    if k==ord('m'):   #键盘里的m键实现模式在真假之间切换

        m=not m

    elif k==27:

        break

当鼠标点下之后,ix,iy=x,y,就是初始位置的坐标。

怎么创建一个画彩色图形的画板(python)?

5、当模式为真的时候,鼠标拖动,可以画出矩形,此时ix,iy保持不变,而x,y则以鼠标最终位置为准。

鼠标点下、拖动、抬起,一个矩形就绘制完成了。

怎么创建一个画彩色图形的画板(python)?

6、矩形如果特别细,可以近似看作是线段。

不过只能画出水平线和竖直线。

怎么创建一个画彩色图形的画板(python)?

7、点击m键,切换到另一种模式,此时鼠标点下并拖动,就会画出一串小圆。

怎么创建一个画彩色图形的画板(python)?

8、如果鼠标移动的过快,会出现断线现象。

怎么创建一个画彩色图形的画板(python)?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢