用鼠标打开cv python绘图

时间:2018-12-31 19:52:34

标签: python opencv

我不断收到无效的语法错误。因此,如何解决这个问题以及将来在哪里可以找到相关文档。

import cv2
import numpy as np

drawing = False # true if mouse is pressed
mode = True # if True, draw rectangle. Press 'm' to toggle to curve
ix,iy = -1,-1
class DessinerLigne:
def dessinerLigne(self):
    # Create a black image
    self.img=np.zeros((512,512,3),np.uint8)


def draw_circle(event,x,y,flags,param):
    global ix,iy,drawing,mode

    if event == cv2.EVENT_LBUTTONDOWN:
        drawing = True
        ix,iy = x,y

    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing == True:
            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)

    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),-
img = np.zeros((512,512,3), np.uint8)

    cv2.imshow("Image", self.img)
    # If q is pressed then exit program
    self.k=cv2.waitKey(0)
    if self.k==ord('q'):
        cv2.destroyAllWindows()

if __name__=="__main__":
DL=DessinerLigne()
DL.dessinerLigne()

1 个答案:

答案 0 :(得分:0)

此脚本显然存在多个问题。需要立即关注的是:

  1. dessinerLigne类的定义中存在缩进错误。

更改:

class DessinerLigne:
def dessinerLigne(self):
    # Create a black image
    self.img=np.zeros((512,512,3),np.uint8)

收件人:

class DessinerLigne:
    def dessinerLigne(self):
        # Create a black image
        self.img=np.zeros((512,512,3),np.uint8)

并且缩进错误应该得到解决。

  1. 第32行中的代码行不完整。

  2. 第33行是方法draw_circle()的一部分吗?如果是这样,则已正确缩进。在其前面添加4个空格。

  3. 您似乎已从某个位置粘贴了代码。在此过程中,很可能已到达一些可能破坏语法的不可见控制字符。使用具有“显示不可见”功能的编辑器可以解决此问题。