opencv 拖拽一个点
时间: 2023-08-21 10:17:35 浏览: 82
要在OpenCV中实现拖拽一个点的功能,你可以使用鼠标事件和OpenCV的绘图函数。下面是一个示例代码,展示了如何在图像上拖拽一个点:
```python
import cv2
import numpy as np
# 定义全局变量
drawing = False # 是否正在绘制
point = (0, 0) # 当前点的坐标
# 鼠标事件回调函数
def mouse_callback(event, x, y, flags, param):
global drawing, point
if event == cv2.EVENT_LBUTTONDOWN: # 鼠标左键按下
drawing = True
point = (x, y)
elif event == cv2.EVENT_LBUTTONUP: # 鼠标左键释放
drawing = False
if drawing:
point = (x, y)
# 创建一个黑色图像
image = np.zeros((512, 512, 3), np.uint8)
# 创建窗口并绑定鼠标事件回调函数
cv2.namedWindow('image')
cv2.setMouseCallback('image', mouse_callback)
while True:
# 显示图像
cv2.imshow('image', image)
# 在图像上绘制当前点
cv2.circle(image, point, 5, (0, 0, 255), -1)
# 退出条件
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
```
这段代码创建了一个窗口,并在窗口中显示一个黑色图像。当鼠标左键按下时,会记录当前点的坐标,并在图像上绘制一个红色的圆点。当鼠标左键释放时,停止绘制。你可以通过拖拽鼠标来移动这个点。按下 'q' 键退出程序。
希望这个示例能帮到你!
#### 引用[.reference_title]
- *1* *2* [openCV实践项目:拖拽虚拟方块](https://blog.csdn.net/suic009/article/details/126534975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文