我想绘制两个坐标之间的直线,这将通过单击图像或鼠标事件获得。我可以通过单击鼠标绘制各个圆圈,但无法弄清楚如何在这些点之间画线。当我使用这段代码时,我只能打印开始和结束坐标,而不是在它们之间划一条线。绘制矩形或线条使用python打开cv使用鼠标事件
import numpy as np
import cv2
import cv2.cv as cv
boxes = []
def on_mouse(event, x, y, flags, params):
if event == cv.CV_EVENT_LBUTTONDOWN:
print 'Start Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y]
boxes.append(sbox)
elif event == cv.CV_EVENT_LBUTTONUP:
print 'End Mouse Position: '+str(x)+', '+str(y)
ebox = [x, y]
boxes.append(ebox)
count = 0
while(1):
count += 1
img = cv2.imread('img.jpg',0)
img = cv2.blur(img, (3,3))
cv2.namedWindow('real image')
cv.SetMouseCallback('real image', on_mouse, 0)
cv2.imshow('real image', img)
if count < 50:
if cv2.waitKey(33) == 27:
cv2.destroyAllWindows()
break
elif count >= 50:
if cv2.waitKey(0) == 27:
cv2.destroyAllWindows()
break
count = 0
不知何故,我无法提取循环外的坐标。有人可以请建议如何画点线或矩形点之间的点我的形象?
此链接可能帮助: HTTP://文档.opencv.org/doc/tutorials/core/basic_geometric_drawing/basic_geometric_drawing.html –