根據(jù)官方文檔實(shí)現(xiàn)python cv2 鼠標(biāo)事件?
但是畫(huà)出的矩形是填充的,并不是輪廓
修改下代碼只顯示鼠標(biāo)彈起的坐標(biāo)大小。

import cv2
import numpyas np
drawing =False? # true if mouse is pressed
mode =True? # if True, draw rectangle. Press 'm' to toggle to curve
ix, iy = -1, -1
# mouse callback function
def draw_circle(event, x, y, flags, param):
global ix, iy, drawing, mode
# print(flags)
? ? if event == cv2.EVENT_LBUTTONDOWN:
drawing =True
? ? ? ? ix, iy = x, y
elif event == cv2.EVENT_MOUSEMOVE:
if drawing ==True:
if mode ==True:
# pass
? ? ? ? ? ? ? ? tmp=img.copy()
cv2.rectangle(tmp, (ix, iy), (x, y), (0, 255, 0), 1)
cv2.imshow('image', tmp)
else:
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
elif event == cv2.EVENT_LBUTTONUP:
drawing =False
? ? ? ? if mode ==True:
cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 1)
else:
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
img = np.zeros((512, 512, 3), np.uint8)
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_circle)
cv2.imshow('image', img)
while (1):
k = cv2.waitKey(1) &0xFF
? ? if k ==ord('m'):
mode =not mode
elif k ==27:
break
cv2.destroyAllWindows()