Open In App

Detect the RGB color from a webcam using Python – OpenCV

Last Updated : 16 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Prerequisites: Python NumPy, Python OpenCV

Every image is represented by 3 colors that are Red, Green and Blue. Let us see how to find the most dominant color captured by the webcam using Python.

Approach:

  1. Import the cv2 and NumPy modules
  2. Capture the webcam video using the cv2.VideoCapture(0) method.
  3. Display the current frame using the cv2.imshow() method.
  4. Run a while loop and take the current frame using the read() method.
  5. Take the red, blue and green elements and store them in a list.
  6. Compute the average of each list.
  7. Whichever average has the greatest value, display that color.
Python
import cv2
import numpy as np

# taking the input from webcam
vid = cv2.VideoCapture(0)

# running while loop just to make sure that
# our program keeps running until we stop it
while True:
    # capturing the current frame
    _, frame = vid.read()

    # displaying the current frame
    cv2.imshow("frame", frame)

    # setting values for base colors
    b = frame[:, :, 0]  # Blue channel
    g = frame[:, :, 1]  # Green channel
    r = frame[:, :, 2]  # Red channel

    # computing the mean
    b_mean = np.mean(b)
    g_mean = np.mean(g)
    r_mean = np.mean(r)

    # displaying the most prominent color
    if b_mean > g_mean and b_mean > r_mean:
        print("Blue")
    elif g_mean > r_mean and g_mean > b_mean:
        print("Green")
    else:
        print("Red")

    # breaking the loop if 'q' is pressed
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# releasing the video capture object and closing all windows
vid.release()
cv2.destroyAllWindows()

Output:



Next Article
Article Tags :
Practice Tags :

Similar Reads