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()