opencv用户绘制可见矩形

时间:2016-07-19 16:22:08

标签: python opencv

我有这个代码,用户可以选择一个图像的矩形来裁剪它,但是当它们绘制它时,矩形是不可见的。有没有人知道如何修改这样的代码,以便在绘制时使其可见?

这是我的裁剪和裁剪方法 -

def click_and_crop(event, x, y, flags, param):

global refPt, cropping

if event == cv2.EVENT_LBUTTONDOWN:
    refPt = [(x, y)]
    cropping = True

elif event == cv2.EVENT_LBUTTONUP:
    refPt.append((x, y))
    cropping = False

    cv2.rectangle(closeres, refPt[0], refPt[1], (0, 255, 0), 2)
    cv2.imshow("image", closeres)

从这段代码中你可以看到它只显示鼠标按钮松开后的矩形,是否有某种方式可以绘制它,因为它们是在事件左键按下时绘制的?也许三角形的第一个点是它们点击的地方,第二个点是鼠标在哪里?

EDIT ---

我遵循了该教程并将方法改为此 -

def click_and_crop(event, x, y, flags, param):

global refPt, drawing, cropping

if event == cv2.EVENT_LBUTTONDOWN:
    drawing = True
    refPt = [(x, y)]
    cropping = True

elif event == cv2.EVENT_MOUSEMOVE:
    if drawing == True:
        cv2.rectangle(closeres, refPt[0], (x,y),(0,255,0),2)


elif event == cv2.EVENT_LBUTTONUP:
    drawing = False
    refPt.append((x, y))
    cropping = False

    cv2.rectangle(closeres, refPt[0], refPt[1], (0, 255, 0), 2)
    cv2.imshow("image", closeres)

它会在每个鼠标移动时绘制连续的矩形,而不是只改变一个矩形,有没有人知道如何修复?

enter image description here

0 个答案:

没有答案