There are plenty of algorithms and tools out there that can take in an image and determine what the most dominant colors are (see here). However, is there a way to determine what colors stand out the most (not necessarily the most dominant/used colors in an image)? For example, if you had a white page with a line of blue, then the blue would stand out the most. Or if there was an image with a lot of pastel colors but then a couple of squares of neon colors, then probably the neon colors would stand out the most.
As a potential alternative to a more algorithmic approach, I ran a survey that asks people to select the colors from an image that stand out the most. Unfortunately, the results were inconsistent and I'll probably re-run a similar test, but I'd still be open to hearing any ideas about deep learning architectures that could be done here. I'm a bit stumped here though, because I can't quite figure out what sort of architecture could be useful here.
Any ideas on the matter would be appreciated. Thanks!
CodePudding user response:
Get the average of all rgb values of every color in the image and loop thru all colors. Find the color that deviates most from the average rgb value. That should be your most outstanding color. In short, you are finding the highest or lowest contrast of the overall image.
CodePudding user response:
Maybe you should split the three different components of color using HSV color space: Hue, Saturation and Value. I think you will focus on Hue, because you say "a white page with a line of blue" will dominate by blue, that mean the low saturation color (white, gray, black) is not consider.
My opinion is using cluster algorithm (like k-mean) to group close colors together, and find the center point of biggest cluster to be the dominant color. And maybe add some condition like ranges of Saturation and Value.