首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

拖动鼠标在opencv Python中绘制直线并获取直线端点的坐标

在OpenCV Python中,可以使用鼠标事件来拖动绘制直线并获取直线端点的坐标。下面是一个示例代码:

代码语言:txt
复制
import cv2

# 定义全局变量
drawing = False
line_start = (-1, -1)
line_end = (-1, -1)

# 鼠标事件回调函数
def draw_line(event, x, y, flags, param):
    global drawing, line_start, line_end

    if event == cv2.EVENT_LBUTTONDOWN:
        drawing = True
        line_start = (x, y)

    elif event == cv2.EVENT_LBUTTONUP:
        drawing = False
        line_end = (x, y)
        cv2.line(img, line_start, line_end, (0, 255, 0), 2)
        cv2.imshow("image", img)

# 创建一个黑色图像窗口
img = np.zeros((512, 512, 3), np.uint8)
cv2.namedWindow("image")
cv2.setMouseCallback("image", draw_line)

while True:
    cv2.imshow("image", img)
    if cv2.waitKey(1) == ord('q'):
        break

cv2.destroyAllWindows()

# 输出直线端点的坐标
print("直线起点坐标:", line_start)
print("直线终点坐标:", line_end)

这段代码创建了一个黑色图像窗口,并通过鼠标事件回调函数draw_line实现了拖动绘制直线的功能。当鼠标按下时,记录起点坐标;当鼠标释放时,记录终点坐标,并在图像上绘制直线。最后,通过cv2.imshow显示图像窗口,并通过cv2.waitKey等待用户按下键盘上的'q'键退出程序。

在这个例子中,我们使用了OpenCV的cv2.line函数来绘制直线,该函数接受起点坐标、终点坐标、颜色和线宽等参数。你可以根据实际需求调整这些参数。

关于OpenCV Python的更多信息,你可以参考腾讯云的相关产品OpenCV介绍页面:OpenCV产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3分59秒

基于深度强化学习的机器人在多行人环境中的避障实验

领券