如何使用Python获取图像的坐标?
什么是OpenCV
OpenCV是为图像处理和图像分析而开发的开源库,可以在Python和C++等多种语言中使用。
通过使用 OpenCV,您可以使用 Python 轻松执行图像处理,例如边缘和轮廓提取以及对象检测。
它必须在使用 OpenCV 之前安装。
例如,通过以下命令安装后尝试使用它。
pip install opencv-python
如何在OpenCV中获取鼠标点击位置的坐标
现在让我们看看如何使用 OpenCV 获取图像中特定位置的坐标。
依次使用以下两个函数。
使用 OpenCV 显示图像
获取用OpenCV显示的图像的点击坐标
1.使用OpenCV显示图像
首先,我将向您展示如何使用 OpenCV 在 GUI 中显示图像。
OpenCV 导入和使用如下。
处理时,用imread()读取图像。
import cv2 img = cv2.imread('要导入的图像路径')
加载的图像可以通过使用 imshow() 显示在单独的窗口中,如下所示。
将打开一个具有指定名称的新窗口并显示图像。
使用 OpenCV 显示图像时,使用 waitKey() 等待键输入。
通过将等待时间指定为 0,您可以无限期地等待直到输入完成。
您可以使用下面的代码描述显示图像并按任意键关闭它的过程。
cv2.imshow('窗口名称', img) cv2.waitKey(等待)
2.获取OpenCV中显示的图片的点击坐标
接下来,单击单独窗口中显示的图像以获取单击位置的坐标。
通过使用OpenCV中的回调函数,您可以描述对imshow窗口的动作的处理,例如滚轮操作和双击。
例如,要显示鼠标左键点击的坐标,可以这样写一个回调函数:
def onMouse(event, x, y, flags, params): if event == cv2.EVENT_LBUTTONDOWN: print(x, y)
调用回调函数时,您可以获取回调事件的类型、事件的 x 坐标和 y 坐标作为参数。
单击位置的 x 和 y 坐标自动输入到 x 和 y 中。
鼠标左键点击时cv2.EVENT_LBUTTONDOWN会发生该事件,所以用上面的函数就可以显示鼠标左键点击时的坐标。
要设置图像窗口以显示上面定义的回调函数,请使用cv2.setMouseCallback()。
第一个参数指定对图像进行鼠标操作处理的窗口名称,第二个参数指定要执行的回调函数。
cv2.setMouseCallback('窗口名称', 回调函数)
实例操作
基于以上,我们来写一个示例代码,获取鼠标点击位置的坐标。
将下面的示例代码保存在与图像相同的目录中并运行它。
import cv2 def onMouse(event, x, y, flags, params): if event == cv2.EVENT_LBUTTONDOWN: print(x, y) img = cv2.imread('sample.png') cv2.imshow('sample', img) cv2.setMouseCallback('sample', onMouse) cv2.waitKey(0)
当您运行示例代码时,保存的图像将显示在一个单独的窗口中,因此单击图像上的任意位置将显示单击位置的坐标。
结语
本次介绍了如何用OpenCV获取鼠标点击时的坐标。
OpenCV是一个专门用于图像处理的库,但它也有自己的GUI操作方法,所以我认为这次介绍的方法在手动进行图像处理时可以应用。
本文来源:词雅网
本文地址:https://www.ciyawang.com/python-coordinate.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
如何使用JavaScript跳转到另一个页面
使用window.location属性跳转到另一个页面。让我们看一下基础知识和一些实际示例。关于 window.location 属性window.location 属性返回一个 Location 对...
-
Base64解码:将二进制数据转换为文本格式的编码方式
Base64是一种编码方式,用于将二进制数据转换为文本格式。Base64编码是将数据以64个字符的可打印ASCII字符表示,以便于传输和存储。而Base64解码则是将Base64编码的数据解密为原始二...
-
使用StringBuilder清空字符串的方法都有哪些?
在Java编程中,字符串处理是非常常见的操作。StringBuilder类是Java提供的一个可变字符串类,它可以非常方便地进行字符串的拼接、删除、修改等操作。但是,在一些场景下,我们需要清空Stri...
-
如何使用length函数在JavaScript中计算字符串长度
在JavaScript中,字符串是一种常见的数据类型。当我们处理字符串时,经常需要知道字符串的长度。JavaScript提供了一个内置函数——length函数,可以用来计算字符串的长度。length函...
-
网页自动刷新的实现方式及应用场景
网页自动刷新是指网页在不刷新页面的情况下,通过代码自动更新网页内容。在Web开发中,自动刷新网页是一项常见的技术,可以为用户提供更好的使用体验。本文将介绍网页自动刷新的实现方式及应用场景。1. 基于M...
-
JavaScript的HTML加载(onload)是如何处理的?
什么是HTML HTML 代表“超文本标记语言”。它是“使用标记语言的伟大句子”的形象。 重点是“标记”。“标记”是为句子指定元素。使用所谓的标记作为指...
-
如何在JavaScript中获取select对象的文本值?
什么是select selectobject 是一个标签,它提供了一个用于显示下拉选项并允许用户进行选择的界面。 将选项标签作为子元素添加到选择标签。此...
-
Python中字符串替换(replace, regex)的方法如何使用?
什么是replace replace是Python中一个具有字符串替换功能的模块。 如何使用replace 在这里,我将介绍如何使用r...
-
Python中的除法运算符(Division)和截断除法(Floor division)
在 Python 中执行除法和楼层除法。 一个斜杠“/”是除法(除法运算符),两个斜杠,双斜杠“//”(整数除法运算符)执行截断除法或截断除法(有时称为整数除法)但是,我...
-
如何使用Python创建数组?
什么是数组 数组是 Python 中的数据集合。 在 Python 中使用数组时,我们使用一种称为列表的数据结构。 另一种称为元组的数...