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:
- Import the cv2 and NumPy modules
- Capture the webcam video using the cv2.VideoCapture(0) method.
- Display the current frame using the cv2.imshow() method.
- Run a while loop and take the current frame using the read() method.
- Take the red, blue and green elements and store them in a list.
- Compute the average of each list.
- 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: