前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >真好用!一招轻松获取图片中鼠标点击处坐标

真好用!一招轻松获取图片中鼠标点击处坐标

作者头像
AI算法与图像处理
发布2021-06-08 11:33:39
2.1K0
发布2021-06-08 11:33:39
举报

大家好,今天给大家分享,一个非常实用的技巧。通过鼠标点击获取图像的坐标值,当然也可以进一步通过坐标获取 RGB 值。

用途:

1、可用于获取 mask 区域的坐标

2、获取关键点、线坐标,便于制图等

目标:

假设目前我们的任务是希望获取车辆进入减速带时的速度,那么首先需要做的第一件事就是获取减速带的区域坐标。

思路

官方文章:https://docs.opencv.org/master/db/d5b/tutorial_py_mouse_handling.html

通过创建一个鼠标回调函数,当鼠标事件发生时执行该函数。鼠标事件可以是任何与鼠标相关的事件,如左键向下、左键向上、左键双击等。它为我们提供了每个鼠标事件的坐标(x,y)。

官方给了一些demo,用于绘制圆和矩形。

这里我们参考demo,做一定的修改,绘制点,并返回坐标即可。

代码实现

这里可以通过修改,读入图片的路径,切换到大家所需要处理的图片。

1、通过鼠标坐标的点击,即可获取坐标值

2、图片上会显示一个小点、坐标值,并在终端中显示坐标值

代码语言:javascript
复制
# coding: utf-8
import cv2
import numpy as np

img = cv2.imread("test.jpg")

def on_EVENT_LBUTTONDOWN(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        xy = "%d,%d" % (x, y)
        print (xy)
        cv2.circle(img, (x, y), 1, (255, 0, 0), thickness = -1)
        cv2.putText(img, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,
                    1.0, (0,0,0), thickness = 1)
        cv2.imshow("image", img)

cv2.namedWindow("image")
cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)
cv2.imshow("image", img)

while(True):
    try:
        cv2.waitKey(100)
    except Exception:
        cv2.destroyWindow("image")
        break
        
cv2.waitKey(0)
cv2.destroyAllWindow()

结果:

好的,今天的分享就到这里,如果喜欢记得关注我,给我一个三连,感谢

代码语言:javascript
复制
个人微信(如果没有备注不拉群!)请注明:地区+学校/企业+研究方向+昵称


下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
代码语言:javascript
复制
下载3 CVPR2021
在「AI算法与图像处理」公众号后台回复:CVPR,即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法与图像处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目标:
  • 思路
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档