Draw a rectangular shape and extract objects using Python's OpenCV (original) (raw)
import
cv2
import
numpy as np
drawing
=
False
mode
=
True
ix, iy
=
-
1
,
-
1
def
draw_circle(event, x, y, flags, param):
`` global
ix, iy, drawing, mode
`` if
event
=
=
cv2.EVENT_LBUTTONDOWN:
`` drawing
=
True
`` ix, iy
=
x, y
`` elif
event
=
=
cv2.EVENT_MOUSEMOVE:
`` if
drawing
=
=
True
:
`` if
mode
=
=
True
:
`` cv2.rectangle(img, (ix, iy), (x, y), (
0
,
255
,
0
),
3
)
`` a
=
x
`` b
=
y
`` if
a !
=
x | b !
=
y:
`` cv2.rectangle(img, (ix, iy), (x, y), (
0
,
0
,
0
),
-
1
)
`` 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
),
2
)
`` 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)
while
(
1
):
`` cv2.imshow(
'image'
, img)
`` k
=
cv2.waitKey(
1
) &
0xFF
`` if
k
=
=
ord
(
'm'
):
`` mode
=
not
mode
`` elif
k
=
=
27
:
`` break
cv2.destroyAllWindows()