Find dominant aka most common colour of any image.
Project description
Get the dominant colour of any image
Introduction
ImageDominantColour is a Python package/library for detecting dominant colour of images.
It can take any input image and tell the dominant colour of the image. It doesn't use k-means clustering for detecting dominant colour but instead quantizes the individual pixels and calculates the statistical mode of the quantized values.
ImageDominantColour does not depend on numpy unlike most of the other implementations for the same task and is also fast and minimalist.
What ImageDominantColour is not?
ImageDominantColour does not calculates the average colour of the image. Also note that the average colour of an image is not same as its dominant colour.
Installation
- Using pip:
pip install imagedominantcolour -U
- Install directly from GitHub:
pip install git+https://github.com/demmenie/imagedominantcolour.git
Usage
>>> from imagedominantcolour import DominantColour
>>> file_path = "blue_butterfly.jpg" # Blue colour is dominant
>>> dominantcolour = DominantColour(file_path)
>>> dominantcolour.dominant_colour
'b'
>>> dominantcolour.rgb
(3, 6, 244)
>>> dir(dominantcolour)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'b', 'counter', 'dominant_colour', 'dominant_colour_of_pixel', 'dominant_colour_of_pixels_of_image_array', 'g', 'generate_dominant_colour_of_pixels_of_image_array', 'image', 'image_data', 'image_path', 'l', 'minimum_percent_difference_of_rgb', 'mpd', 'r', 'resize_value', 'resized_image', 'rgb', 'rgbl', 'set_dominat_colour_of_image', 'set_rgbl_value_of_image', 'total_pixels']
>>> dominantcolour.total_pixels
256
>>> dominantcolour.r
3
>>> dominantcolour.g
6
>>> dominantcolour.b
244
>>> dominantcolour.l
3
>>> dominantcolour.rgbl
(3, 6, 244, 3)
>>> repr(dominantcolour)
'DominantColour(r:3 g:6 b:244 l:3; dominant_colour:b; resize_value:16; minimum_percent_difference_of_rgb:10)'
>>> str(dominantcolour)
'b'
>>>
Output dominant colour and what their meanings are:
r
- Red is the dominant colour in the image.g
- Green is the dominant colour for the image.b
- Blue is the dominant colour.l
- It is lowercase L and it implies that the image is a mostly a grayscale image. L for luminance and most of the image lacks colour.n
- None of the colour out of r, g and b are dominant but the image is not grayscale. It implies that the image has equal regions where 2 or 3 colours dominate, example here. You can check the rgb attribute to decide what to do with such cases.
What are r
, g
, b
and l
attributes of DominantColour
objects?
The library shrinks the image before checking the dominant color and the default resize value is 256. Thus every image is shrunk to a 256 pixels image. The r,g,b and l attributes indicate the number of pixels which have r,g,b and l as dominating value.
License
Copyright (c) 2024 Akash Mahanty.
Forked by Chico Demmenie.
Released under the MIT License. See license for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for imagedominantcolour-1.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f62c255a7143bd76070f9bc8492c3339fb65e0b4749059ef38edd8c2660e9028 |
|
MD5 | adad90e8be9bd3c1aa65b0e4986e77d5 |
|
BLAKE2b-256 | a684dad94c0f8a1096a0192fd3c586029a833cf45893f5d791ed9e7541e95309 |
Hashes for imagedominantcolour-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c74c7fd8e88d6efc83feb9b431d565c62d4ac39b9d139a2d792f5cf2dca752b |
|
MD5 | 5cb451c55d4151d70022c024471d7e40 |
|
BLAKE2b-256 | ccc7b50e59547254f4196ca6bd74e234dc56551394232f08a261435cb45076ce |