我在开发者套件提供的代码上编写逻辑代码时,想通过ipyevents来进行图像与鼠标的交互,但是在进行鼠标行为时,并没有触发回调函数
def infer_video_my_win_html(video_path, model, labels_dict, cfg):
#####################
# 初始化直线列表
#####################
global drawing,lines,current_line
drawing = False # 用于跟踪是否正在绘制
lines = [] # 存储绘制的线段
current_line = [] # 当前正在绘制的线段
#start_point, end_point = None, None
#########################
# 定义回调函数来处理鼠标按下事件
#########################
def handle_mouse_down(event):
global drawing, current_line,lines
drawing = True
current_line = [(event['offsetX'], event['offsetY'])]
print("我来了")
image_widget = widgets.Image(format='jpeg', width=800, height=600)
# 创建一个事件处理器
event = ipyevents.Event(source=image_widget, watched_events='mousedown',)
# 将回调函数绑定到事件
event.on_dom_event(handle_mouse_down, 'mousedown')
display(image_widget)
# 读入视频
cap = cv2.VideoCapture(video_path)
while True:
ret, frame = cap.read()
if not ret:
break
# 对视频帧进行推理
image_pred = infer_frame_vis(frame, model, labels_dict, cfg ,lines,bgr2rgb=True)
image_widget.value = img2bytes(image_pred)
def infer_video_my_win_html(video_path, model, labels_dict, cfg):
#####################
# 初始化直线列表
#####################
global drawing,lines,current_line
drawing = False # 用于跟踪是否正在绘制
lines = [] # 存储绘制的线段
current_line = [] # 当前正在绘制的线段
#start_point, end_point = None, None
#########################
# 定义回调函数来处理鼠标按下事件
#########################
def handle_mouse_down(event):
global drawing, current_line,lines
drawing = True
current_line = [(event['offsetX'], event['offsetY'])]
print("我来了")
image_widget = widgets.Image(format='jpeg', width=800, height=600)
# 创建一个事件处理器
event = ipyevents.Event(source=image_widget, watched_events='mousedown',)
# 将回调函数绑定到事件
event.on_dom_event(handle_mouse_down, 'mousedown')
display(image_widget)
# 读入视频
cap = cv2.VideoCapture(video_path)
while True:
ret, frame = cap.read()
if not ret:
break
# 对视频帧进行推理
image_pred = infer_frame_vis(frame, model, labels_dict, cfg ,lines,bgr2rgb=True)
image_widget.value = img2bytes(image_pred)