美文网首页
opencv python版-lesson 06

opencv python版-lesson 06

作者: writ | 来源:发表于2019-10-10 21:16 被阅读0次

    画板画图

    import cv2
    import numpy as np
    def nothing(x):
        pass
    drawing=False
    mode=True
    ix,iy=-1,-1
    
    def draw_circle(event,x,y,flags,param):
        r=cv2.getTrackbarPos('R','image')
        g=cv2.getTrackbarPos('G','image')
        b=cv2.getTrackbarPos('B','image')
        color=(b,g,r)
    
        global ix,iy,drawing,mode
        if event==cv2.EVENT_LBUTTONDOWN:
            drawing=True
            ix,iy=x,y
        elif event==cv2.EVENT_MOUSEMOVE and flags==cv2.EVENT_FLAG_LBUTTON:
            if drawing==True:
                if mode==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
            if mode==True:
                cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1)
            else:
                cv2.circle(img,(x,y),5,(0,0,255),-1)
    
    img = np.zeros((512,512,3),np.uint8)
    cv2.namedWindow('image')
    cv2.createTrackbar('R','image',0,255,nothing)
    cv2.createTrackbar('G','image',0,255,nothing)
    cv2.createTrackbar('B','image',0,255,nothing)
    cv2.setMouseCallback('image',draw_circle)
    while(1):
        cv2.imshow('image',img)
        k=cv2.waitKey(1)&0xFF
        if k==ord('m'):
            mode=not mode
        elif k==27:
            break
    

    相关文章

      网友评论

          本文标题:opencv python版-lesson 06

          本文链接:https://www.haomeiwen.com/subject/bdfzpctx.html