In this article about Color Detection OpenCV Python will be exciting and fun to build. We will be working with colors and you will get to learn about many concepts throughout this project.
A Color Detection Python is necessary to recognize objects, it is also used as a tool in various image editing and drawing apps.
Also, this Python Color Detection Using OpenCV is the process of detecting the name of any color. Simple isn’t it? Well, for humans this is an extremely easy task but for computers, it is not straightforward.
Color Detection Python – Project Information’s
|Project Name:||Color Detection In Python|
|Language/s Used:||Python OpenCV|
|Python version (Recommended):||2.x or 3.x|
About The Project
Talking about this Color Detection in Python, we are going to build an application through which you can automatically get the name of the color by clicking on them. So for this, we will have a data file that contains the color name and its values. Then we will calculate the distance from each color and find the shortest one.
To start creating a Color Detection Using Python, make sure that you have installed Python in your computer.
Colors are made up of 3 primary colors; red, green, and blue. In computers, we define each color value within a range of 0 to 255.
So in how many ways we can define a color? The answer is 256*256*256 = 16,581,375. There are approximately 16.5 million different ways to represent a color.
In our dataset, we need to map each color’s values with their corresponding names. But don’t worry, we don’t need to map all the values.
We will be using a dataset that contains RGB values with their corresponding names. The CSV file for our dataset has been taken from this link:
Before we start building this Color Detection Using Python, you should be familiar with the computer vision library of Python that is OpenCV and Pandas.
OpenCV, Pandas, and numpy are the Python packages that are necessary for this project in Python. To install them, simply run this pip command in your terminal:
Steps on how to Create a Color Detection Project in Python with Source Code
Time needed: 5 minutes.
These are the steps on how to build Color Detection Project in Python With Source Code
- Step 1: Download and unzip the zip file.
First, download the source code given below and unzip the zip file.
The project folder contains 3 files:
1.) Color_detection.py – main source code of our project.
2.) sample.jpg – sample image for experimenting.
3.) Colors.csv – a file that contains our dataset.
- Step 2: Taking an image from the user.
Next, We are using argparse library to create an argument parser. We can directly give an image path from the command prompt:
- Step 3: Next, we read the CSV file with pandas.
Next, The pandas library is very useful when we need to perform various operations on data files like CSV. pd.read_csv() reads the CSV file and loads it into the pandas DataFrame. We have assigned each column with a name for easy accessing.
- Step 4: Set a mouse callback event on a window.
Next, we created a window in which the input image will display. Then, we set a callback function which will be called when a mouse event happens.
- Step 5: Create the draw_function.
It will calculate the rgb values of the pixel which we double click. The function parameters have the event name, (x,y) coordinates of the mouse position, etc.
In the function, we check if the event is double-clicked then we calculate and set the r,g,b values along with x,y positions of the mouse.
- Step 6: Calculate distance to get color name.
We have the r,g and b values. Now, we need another function which will return us the color name from RGB values.
To get the color name, we calculate a distance(d) which tells us how close we are to color and choose the one having minimum distance.
Our distance is calculated by this formula:
d = abs(Red – ithRedColor) + (Green – ithGreenColor) + (Blue – ithBlueColor)
- Step 7: Display image on the window.
Whenever a double click event occurs, it will update the color name and RGB values on the window.
Using the cv2.imshow() function, we draw the image on the window.
When the user double clicks the window, we draw a rectangle and get the color name to draw text on the window using cv2.rectangle and cv2.putText() functions.
- Step 8: Run Python File.
The beginner Python project is now complete, you can run the Python file from the command prompt. Make sure to give an image path using ‘-i’ argument.
If the image is in another directory, then you need to give full path of the image:
Download Source Code below
Color Detection OpenCV Python is the process of detecting the name of any color. Simple isn’t it? Well, for humans this is an extremely easy task but for computers, it is not straightforward. Human eyes and brains work together to translate light into color.