opencv鼠标回调未触发

时间:2018-10-23 10:11:55

标签: python opencv callback cv2

看看这个功能:

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

应该显示图像并在单击时在鼠标位置打印像素。但是由于某种原因,回调没有被触发。如何使此代码正常工作?

1 个答案:

答案 0 :(得分:1)

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

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