【发布时间】:2023-01-03 04:33:11
【问题描述】:
我试图在图像上使用鼠标绘制矩形,使用 python 中的 openCV 包。每当我画一个矩形时,我都会得到多个相互重叠的矩形,而不是一个矩形。就像下面的图片
这是我的代码。请告诉我哪里出了问题以及需要更正的地方,以便我只得到 1 个矩形。
import cv2
import numpy as np
drawing = False
ix,iy = -1, -1
img = cv2.imread('drawing_over_image/dog.jpg')
def draw(event, x, y, flags, params):
global ix, iy, drawing
if event == cv2.EVENT_LBUTTONDOWN:
ix,iy = x,y
drawing = True
elif event == cv2.EVENT_MOUSEMOVE:
if drawing:
if ix < x and iy < y:
cv2.rectangle(img=img, pt1=(ix,iy), pt2=(x,y), color=[255,0,0], thickness=1)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
cv2.rectangle(img=img, pt1=(ix,iy), pt2=(x,y), color=[255,0,0], thickness=1)
if __name__ == "__main__":
while True:
cv2.imshow(winname='image', mat=img)
cv2.setMouseCallback('image', draw)
if cv2.waitKey(1) & 0xFF == 27:
cv2.destroyAllWindows()
break
【问题讨论】:
标签: python-3.x opencv drawing