我有两个python文件,一个用于使用鼠标事件绘制线条,另一个用于在框架上绘制这些线条。因此,当我在opencv的setMouseCallBack函数内调用鼠标事件时,会引发错误。我是新手,所以请帮助我。 第一个文件
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
# mouse callback function
class getPoints():
def interactive_drawing(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.circle(frame,(x,y),1,(0,0,255),-1)
print("move",x,y)
elif event==cv2.EVENT_LBUTTONUP:
drawing=False
if mode==True:
cv2.circle(frame,(x,y),1,(0,0,255),-1)
print("end",x,y)
第二个文件
from mouseclickevents import getPoints
import cv2
import numpy as np
import imutils
gp = getPoints()
frame = np.zeros((512,512,3), np.uint8)
cv2.namedWindow('Window')
cv2.setMouseCallback('Window',gp.interactive_drawing)
while(1):
cv2.imshow('Window',frame)
k=cv2.waitKey(1)&0xFF
if k== ord('q'):
break
cv2.destroyAllWindows()
所以我收到以下错误“ TypeError:interactive_drawing()接受5个位置参数,但给出了6个位置参数”,我理解了错误的含义,但事实是,因为我在setMouseCallBack函数内部调用它不知道该如何解决。因此,请帮助我摆脱困境。