Два выбранных вами примера легко различимы по количеству цветов. Lo go имеет 584, а фотография имеет на 2 порядка больше - 51811.
Также по энтропии.
Обычные цветные фотографии также не имеют альфа-канала / канала прозрачности, который Это очень любят дизайнеры графики при создании логотипов, поэтому вы тоже можете проверить это.
Проверка альфа-канала, подсчет цветов и измерение энтропии с помощью любой библиотеки Python / C ++ или ImageMagick :
magick identify -format "%f: %[type]: %k: %[entropy]\n" logo.png photo.jpg
logo.png: TrueColorAlpha: 584: 0.166973
photo.jpg: TrueColor: 51811: 0.917643
Если по-прежнему используется v6 ImageMagick , опустите слово magick
в команде.
В качестве быстрой проверки блоков цвета solid вы можете вырезать изображение на фрагменты изображения размером 20x20, например:
введите описание изображения здесь
Затем подсчитайте количество плиток, где дисперсия равна нулю, т.е. блок имеет абсолютно solid цвет. Это даст ответ от 0 (что означает, скорее всего, фотографию) до 400 (что означает, скорее всего, цветовой блок solid). Подсчитайте плитки с нулевой дисперсией следующим образом:
magick IMAGE -crop 20x20@ -format "%[standard-deviation]\n" info: | grep -c "^0$"
Ваш lo go возвращает 199 по этому показателю, а ваша фотография возвращает 0.