如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
def draw_circle(event,x,y,flags,param): global ix,iy,drawing,mode,start_x,start_y if event = = cv2.EVENT_LBUTTONDOWN: if drawing = = False : start_x, start_y = x,y ix,iy = x,y drawing = True elif drawing = = True : cv2.line(img,(ix,iy),(x,y),( 0 , 255 , 0 ), 3 ) ix, iy = x, y print (drawing) elif event = = cv2.EVENT_MBUTTONDOWN: drawing = False cv2.line(img, (ix, iy), (start_x, start_y), ( 0 , 255 , 0 ), 3 ) print (drawing) # # elif event == cv2.EVENT_RBUTTONUP: # cv2.line(img,(ix,iy),(x,y),(0,255,0),3) # Next we have to bind this mouse callback function to OpenCV # # window. In the main loop, we should set a keyboard binding for # key ‘m' to toggle between rectangle and circle. img = np.zeros(( 512 , 512 , 3 ), np.uint8) cv2.namedWindow( 'image' ) cv2.setMouseCallback( 'image' ,draw_circle) while ( 1 ): cv2.imshow( 'image' ,img) k = cv2.waitKey( 1 ) & 0xFF if k = = ord ( 'm' ): # 切换模式 mode = not mode elif k = = 27 : break cv2.destroyAllWindows() |
以上这篇python_opencv用线段画封闭矩形的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_25254777/article/details/80238444