OpenCV Python – 如何在图像上显示点击点的坐标?
OpenCV为我们提供不同类型的鼠标事件,包括左键或右键单击、鼠标移动、左键双击等。鼠标事件返回鼠标事件的坐标(x,y)。为了在事件发生时执行一个操作,我们定义一个鼠标回调函数。我们使用左键单击(cv2.EVENT_LBUTTONDOWN)和右键单击(cv2.EVENT_RBUTTONDOWN)来显示在图像上单击的点的坐标。
步骤
要显示在输入图像上单击点的坐标,可以按照下面的步骤进行-
- 导入所需库OpenCV。确保您已经安装了它。
-
定义一个鼠标回调函数来显示在输入图像上单击点的坐标。鼠标回调函数在鼠标事件发生时执行。鼠标事件给出鼠标事件的坐标(x,y)。在此处,我们定义一个鼠标回调函数,在鼠标左键单击(EVENT_LBUTTONDOWN)或右键单击(EVENT_RBUTTONDOWN)时显示在输入图像上单击点的坐标。在这个回调函数中,我们将坐标显示为文本,将点显示为具有小半径的圆。
-
使用cv2.imread()函数读取输入图像。
-
定义一个新窗口,并使用cv2.setMouseCallback()函数将上面定义的回调函数绑定到窗口。
-
显示图像窗口。该窗口在其中打开输入图像,我们在图像上显示鼠标事件发生的点的坐标。要关闭窗口,请按ESC键。
让我们来看一些程序示例,以更好地理解。
输入图像
我们将在下面的示例中使用此图像作为输入文件。
示例
在下面的Python代码中,我们在图像上单击左键(EVENT_LBUTTONDOWN)时显示点的坐标,并绘制点。
输出结果
当你执行以上代码时,它会产生以下 输出结果 −
我们得到下面的窗口展示了 输出结果 −
在以上输出结果的图像中,用黄色绘制点,而坐标文本为红色。
示例
在此示例中,我们在图像上执行左( EVENT_LBUTTONDOWN )或右( EVENT_RBUTTONDOWN )点击时,显示各点的坐标,并在图像上绘制这些点。
输出结果
当您执行上述代码时,它将生成以下 输出结果 。
然后我们获得了下面的窗口,显示输出 输出 −
在上述输出图像中,用红色绘制了点,用蓝色表示点坐标(左单击),用黄色表示点坐标(右单击)。