Open In App

Detect the RGB color from a webcam using Python – OpenCV

Improve
Improve
Like Article
Like
Save
Share
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.

Python3




# importing required libraries
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 keep 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[:, :, :1]
    g = frame[:, :, 1:2]
    r = frame[:, :, 2:]
  
    # 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")
    if (g_mean > r_mean and g_mean > b_mean):
        print("Green")
    else:
        print("Red")


Output:


Last Updated : 03 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads