Color Detection Using Python With Source Code
The Color Detection Using Python was developed in python programming, In this Color Detection Using Opencv Python Project 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 In Opencv Python, Colour detection is necessary to recognize objects, it is also used as a tool in various image editing and drawing apps. Color Detection Using Python 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.
The Human eyes and brains work together to translate light into color. Light receptors that are present in our eyes transmit the signal to the brain. Our brain then recognizes the color. Since childhood, we have mapped certain lights with their color names. We will be using the somewhat same strategy in Image Color Detection Using Python.
In this Color Detection Python Project, 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.
Watch the video here to see the full running source code of Color Detection Using Python OpenCV with Source Code
In this Color Detection Python Code also includes a downloadable Color Detection Using Python With Source Code for free, just find the downloadable source code below and click to start downloading.
By the way if you are new to python programming and you don’t know what would be the the Python IDE to use, I have here a list of Best Python IDE for Windows, Linux, Mac OS that will suit for you. I also have here How to Download and Install Latest Version of Python on Windows.
To start creating a Color Detection Using Python, make sure that you have installed Python in your computer.
Color Detection Using Python : Data Set
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:
Color Detection Using Python : Prerequisites
Before starting with 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:
Watch the video here to see the full running Color Detection Using Python With Source Code.
Color Detection Using Python With Source Code : Steps on how to build the project
Time needed: 5 minutes.
These are the steps on how to build Color Detection Using 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:
Color Detection Using Python: Complete Source Code
import numpy as np
import pandas as pd
#Creating argument parser to take image path from command line
ap = argparse.ArgumentParser()
ap.add_argument('-i', '--image', required=True, help="Image Path")
args = vars(ap.parse_args())
img_path = args['image']
#Reading the image with opencv
img = cv2.imread(img_path)
#declaring global variables (are used later on)
clicked = False
r = g = b = xpos = ypos = 0
#Reading csv file with pandas and giving names to each column
csv = pd.read_csv('colors.csv', names=index, header=None)
#function to calculate minimum distance from all colors and get the most matching color
minimum = 10000
for i in range(len(csv)):
d = abs(R- int(csv.loc[i,"R"])) + abs(G- int(csv.loc[i,"G"]))+ abs(B- int(csv.loc[i,"B"]))
minimum = d
cname = csv.loc[i,"color_name"]
#function to get x,y coordinates of mouse double click
def draw_function(event, x,y,flags,param):
if event == cv2.EVENT_LBUTTONDBLCLK:
global b,g,r,xpos,ypos, clicked
clicked = True
xpos = x
ypos = y
b,g,r = img[y,x]
b = int(b)
g = int(g)
r = int(r)
#cv2.rectangle(image, startpoint, endpoint, color, thickness)-1 fills entire rectangle
cv2.rectangle(img,(20,20), (750,60), (b,g,r), -1)
#Creating text string to display( Color name and RGB values )
text = getColorName(r,g,b) + ' R='+ str(r) + ' G='+ str(g) + ' B='+ str(b)
#For very light colours we will display text in black colour
#Break the loop when user hits 'esc' key
if cv2.waitKey(20) & 0xFF ==27:
Color Detection Using Python : Output
Run Quick Virus Scan for secure DownloadRun Quick Scan for secure Download
Download Source Code below
Colour detection 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. Light receptors that are present in our eyes transmit the signal to the brain. Our brain then recognizes the color. Since childhood, we have mapped certain lights with their color names. We will be using the somewhat same strategy to detect color names.
- Code For Game in Python: Python Game Projects With Source Code
- Best Python Projects With Source Code 2020 FREE DOWNLOAD
- How to Make a Point of Sale In Python With Source Code 2021
- Python Code For Food Ordering System | FREE DOWNLOAD | 2020
- Inventory Management System Project in Python With Source Code
If you have any questions or suggestions about Color Detection Using Python With Source Code, please feel free to leave a comment below.