Ich denke, man könnte so etwas mit Imagemagick machen . Es verfügt über Funktionen zur Bildquantisierung und Histogrammanalyse, die Sie wahrscheinlich benötigen, um eine echte Behandlung zu erhalten.
Am einfachsten ist es, die Anzahl der einzigartigen Farben in jedem Bild zu zählen - Karikaturen sollten im Allgemeinen weniger als Fotos enthalten. Dies kann so funktionieren, wenn Ihr Suchraum recht einfach ist. dh die Unterscheidung einfacher Cartoons bildet Farbfotos. Wenn Sie "ausgefallene" Cartoons haben, müssen Sie möglicherweise zusätzliche Schecks hinzufügen. Ich habe vor dem Überprüfen jedes Bildes ein zusätzliches Echo für den Farbraum RGB vs. Grau hinzugefügt.
Bei einem anspruchsvolleren Test kann das Histogramm entweder insgesamt oder im RGB-Bereich jedes Bildes überprüft werden.
#!/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
Die Hauptkomplikation besteht darin, komplexe Computeranimationen von Schwarzweißfotos zu trennen. Ein Schwarzweiß-Foto kann relativ wenige eindeutige Farben enthalten, während ein hochentwickelter Wagen aufgrund von computergestützter Schattierung Tausende von Bildern aufweisen kann. Möglicherweise müssen Sie mit den Schwellenwerten für 'X' experimentieren, je nachdem, wie Ihre Bilder aussehen.