Хорошее решение от Alnitak :) Мне действительно стоит немного узнать о netpbm, imagemagick и т. Д.
Просто FYI, как простое и очень общее решение: переберите каждый пиксель изображения, получая значения цвета r, g, b в виде единого целого числа. Ищите это целое число в списке. Если его там нет, добавьте его. Когда закончите со всеми пикселями, выведите количество цветов в списке.
Если вы хотите сосчитать вхождения, используйте вместо простого списка хэш-карту / словарь, увеличивая значение ключа (счетчик), если оно уже найдено в словаре. Если не найдено, добавьте его со значением начального счетчика 1.