I am using a database with Resene color names (and some names from the Wikipedia colors list) mapped to specific hex codes.
I find the closest hex code from the database to the one in your camera and show the name associated with it.
You've got like 3 features, and a list of names with values for each one of those features. You could literally do
_, result = min([(sqrt((i.R - c.R)^2 + (i.G - c.R)^2 + (i.B - c.B)^2), c) for c in colors])
and you're done.
Why would you want a computer to come up with color names anyway? They're identifiers, so you want them to be consistent. What if it comes up with names like Piss or Ennui? Why go through that trouble?
Hope that answers your question!