Все сводится к эффективности. Вы можете буквально прочитать каждое значение RGB изображения и найти режим, но это займет много времени.
Скорее, я бы просто разделил изображение на части, скажем, 100 квадратов или что-то в этом роде. Мы берем значение в центре каждого квадрата, и тот, который появляется больше всего, вероятно, является наиболее распространенным цветом. Да, это довольно рискованно, потому что, если изображение просто имеет менее используемый цвет во ВСЕХ пикселях, которые вы оценили. Лучше всего, во-первых, иметь диапазон, поэтому, если вы получаете похожие rgb, такие как (0,2,0) и (0,0,0), вы просто рассматриваете их как одинаковые.
Следующее, что вы должны сделать, это взять около 10% изображения в качестве образца. Скорее всего, вы получите правильный ответ. Таким образом, если изображение имеет 500 пикселей, используйте 50 пикселей в качестве образца, равномерно распределенного вдоль изображения.
Это компромисс между точностью и скоростью, потому что проверка всего изображения займет очень много времени и не имеет смысла.