OpenCV Python – 如何在图像上显示点击点的坐标?
在图像处理中,我们经常需要在图像上显示某个点的像素坐标,Python的OpenCV库提供了一种简单的方法来实现这一功能。在本文中,我们将介绍如何使用OpenCV和Python来在图像上显示点击点的像素坐标。
安装OpenCV和Python
在本文中,我们将使用Python 3和OpenCV 4。在开始之前,请确保你已经安装了Python和OpenCV库。如果没有,可以通过以下命令来安装它们:
pip install opencv-python
加载图像
首先,我们需要将图像加载到我们的Python代码中。OpenCV提供了一个imread()
函数来加载图像。以下是加载一张名为”image.jpg”的图像的示例代码:
import cv2
# 加载图像
image = cv2.imread("image.jpg")
# 显示图像
cv2.imshow("Image", image)
cv2.waitKey(0)
上述代码中,我们使用cv2.imread()
函数将图像加载到变量image
中。接下来,使用cv2.imshow()
函数显示图像,并使用cv2.waitKey(0)
函数等待用户按下任意键关闭图像窗口。
显示点击点的坐标
接下来,我们将使用鼠标事件来获取用户在图像中点击的位置,然后在图像上显示该位置的像素坐标。我们需要创建一个鼠标回调函数,并将其连接到图像窗口。以下是示例代码:
import cv2
# 鼠标事件回调函数
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print(x, y)
# 在图像上显示坐标
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(image, str(x) + ',' + str(y), (x,y), font, 1, (255, 255, 0), 2)
cv2.imshow('image', image)
# 加载图像
image = cv2.imread('image.jpg')
# 创建图像窗口并连接鼠标回调函数
cv2.imshow('image', image)
cv2.setMouseCallback('image', click_event)
# 等待用户关闭图像窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
上述代码中,我们定义了一个click_event()
函数作为鼠标回调函数。当用户在图像窗口中单击鼠标左键时,该函数将打印点击点的像素坐标,并显示该坐标在图像上的位置。使用cv2.putText()
函数在图像上显示文本,并使用cv2.imshow()
函数显示更新后的图像。
结论
本文介绍了如何使用OpenCV和Python来在图像上显示点击点的像素坐标。我们学习了如何加载图像以及如何创建鼠标回调函数,以便在用户单击图像时获取坐标并将其显示在图像上。如果你有任何问题或建议,请在评论区留言。