Skip to main content

Find dominant aka most common color of any image.

Project description

ImageDominantColor

Get the dominant color of any image

Build Status codecov pypi Downloads PyPI - Python Version Code style: black

Introduction

ImageDominantColor is a Python package/library for detecting dominant color of images.

It can take any input image and tell the dominant color in image. It does not uses k-means clustering for detecting dominant color but instead quantize the individual pixels and calculates the statistical mode of the quantized values. And yes, it works!

ImageDominantColor does not depend on numpy unlike most of the other implementations for the same task and is also fast and minimalist.

What ImageDominantColor is not?

ImageDominantColor does not calculates the average color of the image. Also note that the average color of an image is not same as its dominant color.

Installation

pip install imagedominantcolor -U
  • Install directly from GitHub:
pip install git+https://github.com/akamhy/imagedominantcolor.git

Usage

>>> from imagedominantcolor import DominantColor
>>> file_path = "blue_butterfly.jpg" # Blue color is dominant
>>> dominantcolor = DominantColor(file_path)
>>> dominantcolor.dominant_color
'b'
>>> dominantcolor.rgb
(3, 6, 244)
>>> dir(dominantcolor)
['__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_color', 'dominant_color_of_pixel', 'dominant_color_of_pixels_of_image_array', 'g', 'generate_dominant_color_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_color_of_image', 'set_rgbl_value_of_image', 'total_pixels']
>>> dominantcolor.total_pixels
256
>>> dominantcolor.r
3
>>> dominantcolor.g
6
>>> dominantcolor.b
244
>>> dominantcolor.l
3
>>> dominantcolor.rgbl
(3, 6, 244, 3)
>>> repr(dominantcolor)
'DominantColor(r:3 g:6 b:244 l:3; dominant_color:b; resize_value:16; minimum_percent_difference_of_rgb:10)'
>>> str(dominantcolor)
'b'
>>>

Output dominant color and what their meanings are:

  • r - Red is the dominant color in the image.
  • g - Green is the dominant color for the image.
  • b - Blue is the dominant color.
  • 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 color.
  • n - None of the color 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 colors 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 DominantColor 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

License: MIT

Copyright (c) 2022 Akash Mahanty.

Released under the MIT License. See license for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imagedominantcolor-1.0.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

imagedominantcolor-1.0.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file imagedominantcolor-1.0.1.tar.gz.

File metadata

  • Download URL: imagedominantcolor-1.0.1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for imagedominantcolor-1.0.1.tar.gz
Algorithm Hash digest
SHA256 f37790dfb52402a636231e8e0a1148f241990d4ff75f6b6e7f838885ffef7079
MD5 12a029974097a11d8603818cc2e69318
BLAKE2b-256 fe3e504aa527e9a3eb287a5d0d382fcff9b2580af91b45a9fe21dff95be96651

See more details on using hashes here.

File details

Details for the file imagedominantcolor-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: imagedominantcolor-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for imagedominantcolor-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d890d61f78637f718f5eb6afbd60919317b889c45c5c4133d6bf8e670b18ff6c
MD5 2bef7a9548b100a750461a0b36381dc4
BLAKE2b-256 8ccf92931dbe2151fc92db9827dd12da43fc97e6579e3658e847f10e2f5bce67

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page