Python opencv用户绘图可见矩形

Python opencv用户绘图可见矩形,python,opencv,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 =

我有这样一段代码,用户可以选择一个图像的矩形来裁剪它,但是当他们绘制它时,矩形是不可见的,这使得它很困难。有人知道我如何修改这样的代码,使它在我绘图时可见吗

这是我的裁剪方法-

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)
正如您从这段代码中看到的,它只在鼠标按钮停止后显示矩形,当他们在事件左键下绘制矩形时,是否有一些方法可以绘制矩形?就像三角形的第一个点是他们点击的地方,第二个点是鼠标所在的地方

编辑---

我遵循了那个教程,并将方法改为这个-

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)
它在每次鼠标移动时都会绘制连续的矩形,而不是一个改变大小的矩形,有人知道如何修复吗


您需要保留原始图像的副本,并在每次鼠标移动时绘制一个新的矩形(
event==cv2.event\u MOUSEMOVE)
。请看本教程:。我认为它符合您的要求。您需要保留原始图像的副本,并在每次鼠标移动时绘制一个新的矩形(
event==cv2.event\u MOUSEMOVE)
。请看本教程:。我想这就是你想做的。