Резко пришла идея написать программу, для распознавания среднего цвета на фотографиях.

Код был написан буквально за 15 минут, так что, если нашли какие то минусы, то пишите, исправлю.

Суть программы: на выход дать средний цвет и фото out.jpg

Пусть входное фото:

in.jpg
in.jpg

Тогда при запуске программы, мы вводим его имя с расширением, и получаем rgb и hex для среднего цвета, и цвета фона:

Цвет фона используется дальше, для выходного изображения, он на 10 единиц темнее среднего:

out.jpg
out.jpg

Для написания кода использовал библиотеку PIL:

from PIL import Image

print('Перед вводом названия файла перекиньте его в папку с программой')
print('Примечание: программа плохо работает с форматом .png')
picture_name = str(input('Введите название фото с его расширением: '))

try:
	img = Image.open(picture_name) #Файл для перебора
	obj_for_count = img.load()
	
	f = open(picture_name, "rb") #Файл для размера
	img_for_size = Image.open(f) 
	
	
	sq = [0, 0, 0] #Массив для общего подсчета
	count = img_for_size.size[0] * img_for_size.size[1] #Ширина * Высота
	
	width = img_for_size.size[0] #Ширина
	height = img_for_size.size[1] #Высота

	f.close
	
	for i in range(width): #Цикл по ширине
		for j in range(height): #Цикл по высоте
			sq[0] += obj_for_count[i, j][0] #r
			sq[1] += obj_for_count[i, j][1] #g
			sq[2] += obj_for_count[i, j][2] #b
	
	
	out = [0, 0, 0] #Массив для средних значений
	
	out[0] = int(sq[0]/count) #Средние значения
	out[1] = int(sq[1]/count)
	out[2] = int(sq[2]/count)

	print(f'Средний цвет: rgb({out[0]}, {out[1]}, {out[2]})')
	hexed = '#' + format(out[0], 'x') + format(out[1], 'x') + format(out[2], 'x') #Перевод в HEX
	print(f'hex: {hexed}')

	for i in range(len(out)): #Делаю цвет фона на 10 пунктов темнее 
		if out[i] <= 10:
			out[i] = 0
		else:
			out[i] -= 10
	
	print(f'Цвет фона: rgb({out[0]}, {out[1]}, {out[2]})')
	hexed = '#' + format(out[0], 'x') + format(out[1], 'x') + format(out[2], 'x') #Перевод в HEX
	print(f'hex: {hexed}')

	img_for_out = Image.new("RGB", (int(width*1.5), int(height*1.5)), (out[0], out[1], out[2])) #Создание файла widthхheight с фоном среднего цвета

	img_for_out.paste(img, (int(width/4), int(height/4)))
	img.close

	img_for_out.save('out.jpg') #Запись файла в папку
	img_for_out.show() #Показ файла
	img_for_out.close
except:
	print('ERROR: Файл не найден')

Программа плохо работает с форматом .png: