Python 缩进错误:waitkey中应有缩进块

Python 缩进错误:waitkey中应有缩进块,python,Python,这是您当前的代码: import cv2 import numpy as np #variables #True while mouse button down, False while mouse button up drawing = False ix,iy = -1 #Function def draw_rectangle(event,x,y,param,flags): global ix,iy,drawing if event == cv2.EVENT_

这是您当前的代码:

import cv2

import numpy as np

#variables

#True while mouse button down, False while mouse button up

drawing = False

ix,iy = -1

#Function

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

    global ix,iy,drawing

    if event == cv2.EVENT_LBUTTONDOWN:

        drawing = True

        ix,iy = x,y

    elif event == cv2.EVENT_MOUSEMOVE:

        if drawing == True:

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

    elif event == cv2.EVENT_LBUTTONUP:

        drawing = False

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

#Showing images with opencv

#black

img = np.zeros((612,612,3))

cv2.namedwindow(winname='draw_painting')

cv2.setMouseCallback('draw_painting',draw_rectangle)

while True:


        cv2.imshow('draw_painting',img)

        cv2.waitkey(20) & 0xFF = 27:

            break

    cv2.destryAllWindows()
请注意,在if语句之后,需要缩进代码:

elif event == cv2.EVENT_MOUSEMOVE:
    if drawing == True:
    cv2.rectangle(img,(ix,iy),(x,y),(255,0,0),-1)
其他错误:


此外,您似乎希望最终的if语句位于if块内,并记住使用
=
而不是
=
来检查是否相等。

您需要为if语句后的行提供缩进

elif event == cv2.EVENT_MOUSEMOVE:
    if drawing == True:
        cv2.rectangle(img,(ix,iy),(x,y),(255,0,0),-1)

tab if语句后的cv2.矩形(img,(ix,iy),(x,y),(255,0,0),-1)。问题是if语句中没有任何内容,因为if结果在同一个缩进行上。您将
if drawing==True:
block留空,这就是它要求在下一行缩进的原因。您非常聪明,并且您的解释可以到达想要缩进的人
elif event == cv2.EVENT_MOUSEMOVE:
    if drawing == True:
        cv2.rectangle(img,(ix,iy),(x,y),(255,0,0),-1)
if drawing == True:

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