在对图像进行精确裁剪分割时,或者是想要确定图片中某个特征点的具体位置时,往往我们希望得到鼠标点击处的像素点坐标。这样做还有一个好处,如果我们想要快速得到拍摄的画面中一个物体的运动轨迹点数据的话,通过获得不同帧画面的物体所在的像素点坐标即可。
实现这个功能需要用到Opencv的鼠标回调事件,这基于OpenCV的内置函数cv2.setMouseCallback(),官方文档是这样写的:
1 | import cv2 |
这段代码的主要流程是如果检测到鼠标事件,则在鼠标双击的坐标处画一个大小为100的圆,因此由此我们可以得到鼠标点击处的像素坐标。
对于单张图片:
1 | import numpy as np |
运行后效果如图:
对于一系列图片:
想要提取视频中的某个特征点的像素点坐标的话,也可以通过人为的鼠标点击获得这些坐标数据,在进行这个操作的前提是已经将视频每一帧转成图片。在这里我截取了辉告中会长向藤原书记学习唱歌的片段,主要想要得到的是得到藤原书记手指指尖挥动的轨迹坐标点。
运行程序的时候只需要鼠标点击藤原书记指尖位置,然后按下任意键切换下一帧图片,继续点击,直至循环结束,指尖挥动的轨迹坐标点则存入trajectory_cod列表中。
1 | # 导入所需要的库 |
运行后效果如图: