我使用Python(opencv包)在现有图像上使用鼠标点击绘制了几条线(每个鼠标点击都是一个连接的点),您可以将其视为允许用户在图像上选择某些内容。
我该如何允许用户通过右键单击来删除图像上的最后一个点?这是我的当前代码:
我该如何允许用户通过右键单击来删除图像上的最后一个点?这是我的当前代码:
import numpy
import cv2
points = []
def draw_point(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(image, (x,y), 1, (255,0,0),-1)
points.append((x,y))
pts = numpy.array(points, numpy.int32)
cv2.polylines(image,[pts],False,(255,0,0))
elif event == cv2.EVENT_RBUTTONDOWN:
# HOW TO DELETE?
del points[-1]
pts = numpy.array(points, numpy.int32)
cv2.polylines(image,[pts],True,(255,0,0))
image = cv2.imread('simple_tattoo.jpg', cv2.IMREAD_UNCHANGED)
cv2.namedWindow('example', cv2.WINDOW_AUTOSIZE)
cv2.setMouseCallback('example', draw_point)
while(1):
cv2.imshow('example',image)
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows()
print (points)
在图像上绘制线条或其他内容是否有更简单的方法?