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)