Find the dominant colors in any image
-
Make sure you have python 3 installed on your machine
python3 --version
-
Navigate into the main directory ColorPalette and create a python virtual environment as follows:
python3 -m venv env
-
Activate the virtual environment as follows:
source env/bin/activate
-
Install the required packages:
pip install -e .
To use this tool place whatever image you want to analyze in the main ColorPalette folder and type the following:
./bin/run EXAMPLE_IMAGE.jpg NUM_COLORS
In the above, NUM_COLORS refers to the number of colors you want displayed. Additionally, you may follow NUM_COLORS with either a 0 or a 1 to specify whether you would like the hexadecimal color codes of each number to be displayed in the final picture.
The tool will output two files into the main folder your image was initially in. The first file will be named YOUR_FILE_palette and will contain just the color palette. The second file will be called YOUR_FILE_with_palette and this will contain the original image with the palette below it.
Yes, I hope to make one soon.
This varies wildly based on the size of the image but anywhere from 1 second to a minute
Currently this only works for .jpg and .png images but I hope to expand this in the future
When I look at this picture one color really stands out to my eye but the script didn't pick it up, why?
The human eye is designed to detect harsh contrast and abrupt changes so when there is a small amount of a color we can find it very overpowering. This script is designed to handle "dominant" colors and therefore may not pick up these small yet bright/contrasting colors your eye does. this being said, often it will pick these up if you just increase the number of colors its looking for by a couple.
In the future I hope to add real time analysis so that it can display colors as you watch a movie.