Я думаю, что вы могли бы сделать что-то подобное с Imagemagick. Он имеет функции квантования изображения и анализа гистограмм, которые вам, вероятно, понадобятся для реальной обработки.
Самое простое, что нужно сделать, - это подсчитать количество уникальных цветов на каждой картинке - в мультфильмах должно быть меньше фотографий. Это может работать как есть, если ваше пространство поиска довольно простое. то есть дифференцируя простые мультфильмы, формируйте цветные фотографии. Если у вас есть «модные» мультфильмы, возможно, вам придется добавить дополнительные проверки. Я добавил дополнительное эхо для цветового пространства RGB против серого перед проверкой каждого изображения.
Более сложный тест может включать проверку гистограммы, как общей, так и в RGB-пространстве каждого изображения.
#!/bin/bash
for i in `ls *.jpg`
do
echo "$i is `convert $i -format \"%[colorspace]\" info:`"
x=`convert $i -unique-colors txt:- | wc -l`
if [ $x -le 512 ]; then
echo "$i is cartoon like ($x)"
elif [ $x -le 1024 ]; then
echo "$i is a bw photo ($x)"
else
echo "$i is real life-like ($x)"
fi
done
Основным осложнением является отделение сложной компьютерной анимации от черно-белых фотографий. На черно-белой фотографии может быть относительно мало уникальных цветов, а на сложных изображениях могут быть тысячи из-за компьютерной штриховки. Возможно, вам придется поэкспериментировать с пороговыми значениями для «X» в зависимости от того, как выглядят ваши изображения.