Ask Your Question

alejandrozuleta's profile - activity

2020-08-15 17:15:11 -0600 received badge  Popular Question (source)
2017-02-24 06:45:42 -0600 received badge  Famous Question (source)
2016-01-14 10:07:37 -0600 received badge  Notable Question (source)
2015-09-07 06:18:54 -0600 received badge  Popular Question (source)
2014-07-25 08:21:56 -0600 answered a question tracking multiple objects by color Python OpenCV 2.x wrapper

I needed to show both blue and Green mask in the same output image. So in another forum they helped me.

I just add blue mask and Green mask.

mask = Green_mask + blue_mask

So I used

res = cv2.bitwise_and(frame, frame, mask)

in order to generate image.

2014-07-22 11:55:06 -0600 asked a question tracking multiple objects by color Python OpenCV 2.x wrapper

Currently i am trying to track multiple objects by color. I've based on OpenCV-Python Tutorial in the official documentation.

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):

    # Take each frame
    _, frame = cap.read()

    # Convert BGR to HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # define range of blue color in HSV
    lower_blue = np.array([110,50,50])
    upper_blue = np.array([130,255,255])

    # Threshold the HSV image to get only blue colors
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask= mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

With the above code I am tracking blue colored objects filtering the HSV blue color. I want to simultaneously track Green colored objects and show both blue and Green in 'res' image.

I've added the following code without success

lower_green = np.array([50, 100, 100])
upper_green = np.array([70, 255, 255]) 
green_mask = cv2.inRange(hsv, lower_green, upper_green) # I have the Green threshold image.

I don't know how to add Green mask and mask (blue) in only one 'res' image using bitwise-and. Could you provide me some guidance.

This is the link to the tutorial Link

Thanks in advance.

2014-07-21 08:35:12 -0600 received badge  Editor (source)
2014-07-21 08:29:24 -0600 asked a question unfilled rectangle

I am learning OpenCV and I met with a exercise where I have to modify the following code to draw unfilled rectangles.

import cv2
import numpy as 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

    if event == cv2.EVENT_LBUTTONDOWN:
        drawing = True
        ix, iy = x,y
    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing:
            if mode:
                cv2.rectangle(img, (ix, iy), (x,y), (0,255,0), -1)
            else:
                cv2.circle(img,(x,y),5,(0,0,255),-1)
    elif event == cv2.EVENT_LBUTTONUP:
        drawing = False
        if mode:
            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)

while(1):
    cv2.imshow('image',img)
    k = cv2.waitKey(1) & 0xFF
    if k == ord('m'):
        mode = not mode
    elif k == 27:
        break
cv2.destroyAllWindows()

I also tried to change thickness parameter to a positive value without success image description

cv2.rectangle(img,(ix,iy),(x,y),(0,255,0), 1)

Thanks in advance