Find any color from image using python

          Welcome to color finder from image 


This is color finder from image using python.

You need to 2 modules
1. pandas
2. opencv-python

This is colors.cvs file 



How to use this visit my channel.

YouTube link     



esc to end the task
import pandas as pd
import cv2

img_path = './colorpic.jpg' #paste you image location
csv_path = './colors.csv'

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

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

clicked = False
r = g = b = xpos = ypos = 0



def get_color_name(R, G, B):
minimum = 10000
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



def draw_function(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDBLCLK:
global clicked, r, g, b, xpos, ypos
clicked = True
xpos = x
ypos = y
b, g, r = img[y, x]
b = int(b)
g = int(g)
r = int(r)


cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_function)

while True:
cv2.imshow('image', img)
if clicked:
cv2.rectangle(img, (20, 20), (600, 60), (b, g, r), -1)

text = get_color_name(r, g, b) + ' R=' + str(r) + \
'G=' + str(g) + ' B=' + str(b)

cv2.putText(img, text, (50, 50), 2, 0.8,
(255, 255, 255), 2, cv2.LINE_AA)

if (r + g + b >= 600):
cv2.putText(img, text, (50, 50), 2, 0.8, (0, 0, 0), 2, cv2.LINE_AA)
clicked = False

# Break the loop when user hits 'esc' key
if cv2.waitKey(20) & 0xFF == 27:
break


cv2.destroyAllWindows()



This is not my project it is another person project.

Comments

Popular posts from this blog

Binary to Number converter.

Python Tkinter QR Code Generator

color guessing game with GUI using python