未触发opencv鼠标回调

2024-05-14 03:02:13 发布

您现在位置:Python中文网/ 问答频道 /正文

看看这个函数:

def showImage(im):
    def printColor(event, x, y, flag, params):
        if event == cv2.EVENT_LBUTTONDOWN:
            print(im[x,y])
            sys.exit(1)

    tag = "image"
    cv2.setMouseCallback(tag, printColor)
    cv2.imshow(tag, im)
    while True:
        if 'q' == chr(cv2.waitKey() & 255):
            cv2.destroyAllWindows()
            break

它应该显示一个图像,并在点击时在鼠标位置打印像素。但由于某些原因,回调没有被触发。我怎样才能让代码工作?在


Tags: 函数eventifdeftagsysparamscv2
1条回答
网友
1楼 · 发布于 2024-05-14 03:02:13

要使setMouseCallback正常工作,您需要首先创建窗口对象。在

这可以通过在设置鼠标回调之前调用imshow来完成,也可以通过使用cv2.namedWindow()创建它来完成

相关问题 更多 >