Skip to content

Commit

Permalink
added color detector
Browse files Browse the repository at this point in the history
  • Loading branch information
Aditijainnn committed Jul 16, 2024
1 parent cf09a30 commit 8f27e82
Show file tree
Hide file tree
Showing 10 changed files with 954 additions and 0 deletions.
Binary file added Color Detection/Dataset/colorpic.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
865 changes: 865 additions & 0 deletions Color Detection/Dataset/colors.csv

Large diffs are not rendered by default.

Binary file added Color Detection/Dataset/pic1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Color Detection/Dataset/pic2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Color Detection/Dataset/pic3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
66 changes: 66 additions & 0 deletions Color Detection/Model/color_detection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import cv2
import pandas as pd

# --------------------------------------------------------------------------

img_path = 'pic1.jpg'
csv_path = 'colors.csv'

# reading csv file
index = ['color', 'color_name', 'hex', 'R', 'G', 'B']
df = pd.read_csv(csv_path, names=index, header=None)

# reading image
img = cv2.imread(img_path)
img = cv2.resize(img, (800,600))

#declaring global variables
clicked = False
r = g = b = xpos = ypos = 0

#function to calculate minimum distance from all colors and get the most matching color
def get_color_name(R,G,B):
minimum = 1000
for i in range(len(df)):
d = abs(R - int(df.loc[i,'R'])) + abs(G - int(df.loc[i,'G'])) + abs(B - int(df.loc[i,'B']))
if d <= minimum:
minimum = d
cname = df.loc[i, 'color_name']

return cname

#function to get x,y coordinates of mouse double click
def draw_function(event, x, y, flags, params):
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)

# creating window
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_function)

while True:
cv2.imshow('image', img)
if clicked:
#cv2.rectangle(image, startpoint, endpoint, color, thickness)-1 fills entire rectangle
cv2.rectangle(img, (20,20), (600,60), (b,g,r), -1)

#Creating text string to display( Color name and RGB values )
text = get_color_name(r,g,b) + ' R=' + str(r) + ' G=' + str(g) + ' B=' + str(b)
#cv2.putText(img,text,start,font(0-7),fontScale,color,thickness,lineType )
cv2.putText(img, text, (50,50), 2,0.8, (255,255,255),2,cv2.LINE_AA)

#For very light colours we will display text in black colour
if r+g+b >=600:
cv2.putText(img, text, (50,50), 2,0.8, (0,0,0),2,cv2.LINE_AA)

if cv2.waitKey(20) & 0xFF == 27:
break

cv2.destroyAllWindows()
23 changes: 23 additions & 0 deletions Color Detection/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Colour Identification using Machine Learning

A very common task in Computer Vision is based on identifying colours.
More generally, a fascinating aspect of learning is that sometimes we know things but we can’t explain them.
For example, if I ask you to describe me the “red colour” your only option is to show me a red object, but you can’t really explain what “red” is.
For this reason a certain effort is necessary to transmit the definition of a colour to a computer.

**DATASET**
https://www.kaggle.com/adityabhndari/color-detection-data-set

**WHAT I HAD DONE**
I have used OpenCV and Pandas library to choose a point on any particular image and calculate the RGB of that point and match it with the nearest colour in the dataset to predict the colour.

**LIBRARIES NEEDED**
OpenCV and Pandas

Original Pic:

![pic1](https://user-images.githubusercontent.com/58680590/122101277-ba584b00-ce31-11eb-9a98-36e83a1a4e45.jpg)

Result:

![result3](https://user-images.githubusercontent.com/58680590/122101306-c17f5900-ce31-11eb-8fd9-780ee00f764a.png)
Binary file added Color Detection/Results/result1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Color Detection/Results/result2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Color Detection/Results/result3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8f27e82

Please sign in to comment.