Это можно сделать с помощью библиотеки Pillow.
Сначала импортируйте необходимые библиотеки и используйте метод getcolors
для получения цветовой палитры, отсортировав ее по количеству пикселей по возрастанию.
from PIL import Image
i = Image.open("D:\\test2.png")
colors = sorted(i.getcolors())
Для вашего изображения colors
теперь представляет собой список кортежей, где первый элемент в каждом кортеже - это количество пикселей, содержащих указанный цвет, а второй элемент - это еще один кортеж, указывающий цветовой код RGB.
Последний элемент в списке - это элемент с наибольшим количеством пикселей (белый):
>>> colors[-1]
(2547, (255, 255, 255))
Второй последний, вероятно, цвет, который вы хотите:
>>> colors[-2]
(175, (76, 175, 80))
Тогда это может быть преобразован в шестнадцатеричный код :
>>> '#%02x%02x%02x' % colors[-2][1]
'#4caf50'
И быстро подтвердите с помощью веб-средства выбора шестнадцатеричного кода:
расчетный цвет
Это выглядит правильным для вашего тестового изображения, но вам может потребоваться небольшая настройка, если изображения, с которыми вы работаете, различаются.