ABOUT ME

안뇽?

Today
Yesterday
Total
  • Python) Multiple-Color-Detection-in-Real-Time-using-Python-OpenCV
    Programing Language/Python 2021. 1. 4. 21:16
    728x90
    반응형
    # Python code for Multiple Color Detection
    import numpy as np
    import cv2
    # Capturing video through webcam
    webcam = cv2.VideoCapture(0)
    # Start a while loop
    while(1):
    # Reading the video from the
    # webcam in image frames
    _, imageFrame = webcam.read()
    # Convert the imageFrame in
    # BGR(RGB color space) to
    # HSV(hue-saturation-value)
    # color space
    hsvFrame = cv2.cvtColor(imageFrame, cv2.COLOR_BGR2HSV)
    # Set range for red color and
    # define mask
    red_lower = np.array([136, 87, 111], np.uint8)
    red_upper = np.array([180, 255, 255], np.uint8)
    red_mask = cv2.inRange(hsvFrame, red_lower, red_upper)
    # Set range for green color and
    # define mask
    green_lower = np.array([25, 52, 72], np.uint8)
    green_upper = np.array([102, 255, 255], np.uint8)
    green_mask = cv2.inRange(hsvFrame, green_lower, green_upper)
    # Set range for blue color and
    # define mask
    blue_lower = np.array([94, 80, 2], np.uint8)
    blue_upper = np.array([120, 255, 255], np.uint8)
    blue_mask = cv2.inRange(hsvFrame, blue_lower, blue_upper)
    # Morphological Transform, Dilation
    # for each color and bitwise_and operator
    # between imageFrame and mask determines
    # to detect only that particular color
    kernal = np.ones((5, 5), "uint8")
    # For red color
    red_mask = cv2.dilate(red_mask, kernal)
    res_red = cv2.bitwise_and(imageFrame, imageFrame,
    mask = red_mask)
    # For green color
    green_mask = cv2.dilate(green_mask, kernal)
    res_green = cv2.bitwise_and(imageFrame, imageFrame,
    mask = green_mask)
    # For blue color
    blue_mask = cv2.dilate(blue_mask, kernal)
    res_blue = cv2.bitwise_and(imageFrame, imageFrame,
    mask = blue_mask)
    # Creating contour to track red color
    contours, hierarchy = cv2.findContours(red_mask,
    cv2.RETR_TREE,
    cv2.CHAIN_APPROX_SIMPLE)
    for pic, contour in enumerate(contours):
    area = cv2.contourArea(contour)
    if(area > 300):
    x, y, w, h = cv2.boundingRect(contour)
    imageFrame = cv2.rectangle(imageFrame, (x, y),
    (x + w, y + h),
    (0, 0, 255), 2)
    cv2.putText(imageFrame, "Red Colour", (x, y),
    cv2.FONT_HERSHEY_SIMPLEX, 1.0,
    (0, 0, 255))
    # Creating contour to track green color
    contours, hierarchy = cv2.findContours(green_mask,
    cv2.RETR_TREE,
    cv2.CHAIN_APPROX_SIMPLE)
    for pic, contour in enumerate(contours):
    area = cv2.contourArea(contour)
    if(area > 300):
    x, y, w, h = cv2.boundingRect(contour)
    imageFrame = cv2.rectangle(imageFrame, (x, y),
    (x + w, y + h),
    (0, 255, 0), 2)
    cv2.putText(imageFrame, "Green Colour", (x, y),
    cv2.FONT_HERSHEY_SIMPLEX,
    1.0, (0, 255, 0))
    # Creating contour to track blue color
    contours, hierarchy = cv2.findContours(blue_mask,
    cv2.RETR_TREE,
    cv2.CHAIN_APPROX_SIMPLE)
    for pic, contour in enumerate(contours):
    area = cv2.contourArea(contour)
    if(area > 300):
    x, y, w, h = cv2.boundingRect(contour)
    imageFrame = cv2.rectangle(imageFrame, (x, y),
    (x + w, y + h),
    (255, 0, 0), 2)
    cv2.putText(imageFrame, "Blue Colour", (x, y),
    cv2.FONT_HERSHEY_SIMPLEX,
    1.0, (255, 0, 0))
    # Program Termination
    cv2.imshow("Multiple Color Detection in Real-TIme", imageFrame)
    if cv2.waitKey(10) & 0xFF == ord('q'):
    cap.release()
    cv2.destroyAllWindows()
    break
    view raw gistfile1.txt hosted with ❤ by GitHub
    728x90
    반응형
Designed by Tistory.