Skip to main content

Red color detection opencv python

#!/usr/bin/python
import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()
    hsv = cv2.cvtColor(frame , cv2.COLOR_BGR2HSV)
    l_red = np.array([150,150,50])
    u_red = np.array([180,255,150])

    mask = cv2.inRange(hsv , l_red , u_red)
    res = cv2.bitwise_and(frame , frame , mask = mask)



    cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE)[-2]
    # print frame
    # print cnts
    center = None
        # only proceed if at least one contour was found
    # if len(cnts) > 0:
        # find the largest contour in the mask, then use
        # it to compute the minimum enclosing circle and
        # centroid
    try:
        areas = [cv2.contourArea(c) for c in cnts]
        max_index = np.argmax(areas)
        # print max_index
        cnt=cnts[max_index]
        x,y,w,h = cv2.boundingRect(cnt)
        print "X = ",x," Y=",y," w=",w," h= ",h
        cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
        pass
    except:
        pass
    else:
        pass

        # # only proceed if the radius meets a minimum size
        # if radius > 10:
        #     # draw the circle and centroid on the frame,
        #     # then update the list of tracked points
        #     cv2.circle(frame, (int(x), int(y)), int(radius),
        #         (0, 255, 255), 2)
        #     cv2.circle(frame, center, 5, (0, 0, 255), -1)
    # cnts = cnts[0] if imutils.is_cv2() else cnts[1]
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break
    cv2.imshow('frame' , frame)
    # cv2.imshow('mask' , mask)
    # cv2.imshow('res' , res)

cv2.destroyAllWindows()
cap.release()







##Subscribe and comment

Comments

Popular posts from this blog

Python Reads gmail

This is tutorial on how to read gmail emails with python programme : ----------------- #!/usr/bin/python __author__ = 'Robokishan' import email import imaplib import ctypes import getpass mail = imaplib.IMAP4_SSL('imap.gmail.com',993) unm = raw_input("insert Email : ") #pwd = raw_input("insert password : ") pwd = getpass.getpass("input : ") mail.login(unm,pwd) mail.select("INBOX") def loop():    mail.select("INBOX")    n=0    (retcode, messages) = mail.search(None, '(UNSEEN)')    if retcode == 'OK':             for num in messages[0].split() :          #print 'Processing '          n=n+1          print n          typ, data = mail.fetch(num,'(RFC822)')          for response_part in data:             if isinstance(response_part, tuple): ...

ArduPilot reverse engineering #1

its been a long time, from drone development and also from electronics and blogging, let it go, tonight it is ardupilot time, I have seen some algorithms working like get position and velocity from accelerometer data but haven't found anything yet. so was surfing through the code and found that AP_InertialNavEKF.h library is just fallback library for the ardupilot to switch between ekf and normal mode.  a comment from first line /* A wrapper around the AP_InertialNav class which uses the NavEKF filter if available, and falls back to the AP_InertialNav filter when EKF is not available */ /** now working on how can I implement on my own drone since my plans are different from ardupilot. so here i am now sleepless nights and go on until I finally make my quadcopter (the only incomplement project left).

How to make stoppable thread in python

Python multi threading: stoppable thread:     many of you heard about threading in python is very bad. its not easy to stop it but there are several method to do that thing happen .     so lets get started.     create file name called <filename>.py then paste this code in your text editor. import threading import time ##writer = Robokishan ##stopable thread class ThreadingExample(object):     """ Threading example class     The run() method will be started and it will run in the background     until the application exits.     """     #NOTE: STOPING THREAD IS BAD METHOD     def __init__(self, interval=1):         """ Constructor         :type interval: int         :param interval: Check interval, in seconds       ...