使用相机捕获图像,然后使用 Python、SimpleCV 和 OpenCV 在捕获的图像上绘制 'freeform' 'filled' 区域

Capture an image using a camera and then draw a 'freeform' 'filled' area over the captured image using Python, SimpleCV & OpenCV

我正在尝试使用 Python、opencv 和 simplecv。我想使用相机捕获图像,然后使用鼠标在捕获的图像上绘制 'freeform' 'filled' 区域。有人可以帮我完成这个吗?这是我到目前为止所做的:

from SimpleCV import Camera, Display, Image, Color

cam = Camera()
display = Display()
img = cam.getImage()
img.save(display)

while not display.isDone():
    if display.mouseLeft:
        img.dl().circle((display.mouseX, display.mouseY), 4, Color.WHITE, filled=True)
        img.save(display)
        img.save("draw.png")

我可以在捕获的图像上绘制,但只能用圆圈绘制。如果我以正常速度绘制,那也太宽了。外观如下:

而我正在努力实现这样的目标:

有人可以帮我吗?

保持鼠标在列表上的位置并绘制多边形:

from SimpleCV import Camera, Display, Image, Color

cam = Camera()
display = Display()
img = cam.getImage()
img.save(display)

points = []

while not display.isDone():
    if display.mouseLeft:
        point = (display.mouseX, display.mouseY)

        points.append( point )

        if len(points) > 2:
            img.dl().polygon(points, filled=True, color=Color.RED)

        img.dl().circle(point, 4, Color.WHITE, filled=True)

        img.save(display)
        img.save("draw.png")

阅读 SimpleCV 文档:Drawing on Images in SimpleCV