2017-08-30 5 views
0

Ich habe viele Produktbilder auf meinem lokalen Laufwerk, die ich aus verschiedenen Quellen habe und einige von ihnen sind etwas durcheinander. Ich spreche von Bildern, die eine hohe Auflösung haben, aber es ist offensichtlich, dass diese Auflösung erreicht wurde, indem das Bild von einer sehr kleinen Quelle aus verändert wurde.Suche nach großen Bildern aus einer niedrigen Auflösung

Gibt es eine Software oder etwas, das diese normalerweise hochauflösenden, aber qualitativ schlechten Bilder finden könnte? Danke für jede Idee.

Example of enlarged image from a small source

Antwort

1

Ich habe ein paar Ideen, und ich werde zeigen, was ich mit ImageMagick bin immer die auf den meisten Linux-Distributionen installiert und verfügbar ist (kostenlos) für Mac OS und Windows.

Nur um zu verdeutlichen, worüber ich spreche, ist es das Fehlen von hochfrequenten Informationen (Detail) in Bildern, wenn sie von kleineren Bildern upsized (up-rezzed). Hier ein Beispiel:

enter image description here

Die Technik wie das geht. Nehmen Sie ein Bild auf, kopieren Sie es, skalieren Sie es auf einen Prozentsatz seiner ursprünglichen Größe und skalieren Sie es dann zurück und messen Sie, wie stark es vom Original abweicht. Hier ein Beispiel:

magick start.jpg -set option:geom "%G" \(+clone -resize 50% -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: 
0.00220709 

Wenn ich jetzt tun, dass in einer Schleife, kann ich die MSE erhalten („Mean Squared Error“) zum Ändern der Bildgröße auf 10% und sichern, bis zu 20 % und sichern, bis auf 30% und bis wie folgt zurück:

for ((size=10;size<100;size+=10)); do 
    distortion=$(magick start.jpg -set option:geom "%G" \(+clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: 2>&1) 
    echo $size $distortion 
done 

Beispielausgabe

10 0.00641669 
20 0.00461728 
30 0.00351362 
40 0.0027639 
50 0.00220709 
60 0.00173019 
70 0.00130171 
80 0.000935031 
90 0.000637741 

Wenn Sie, dass ein Lauf Gewinn, sondern die Ausgabe in eine "data", die so genannten Datei umleiten Sie es mit gnuplot plotten können:

gnuplot --persist -e "set yrange [0:0.01];set title '10: MSE vs Resize Percentage';plot 'data'" 

Nun wir zum eigentlichen Punkt kommen. Wenn ich das Plot für eine Datei starte, die von 75% ihrer ursprünglichen Größe rezfiziert wurde, dann kann ich für eine Datei, die von 50% ihrer ursprünglichen Größe und wiederum für 25% und 15% rezediert wurde setzen sie zusammen in einer Animation wie folgt aus:

enter image description here

Hoffentlich können Sie sehen, dass die lila Punkte von der x-Achse abweichen (wo der MSE-Fehler gering ist) unmittelbar an der Stelle entsprechend dem Anteil der die Originalgröße, von der das Bild referenziert wurde.

Also, ich schlage vor, dass Sie Ihre Bilder betrachten und einen Schwellenwert für den Fehler finden, der dem Grad der wahrscheinlich vorhandenen Präsenz entsprechen würde, und dann den Fehler für jedes einzelne Bild gegen diesen Schwellenwert testen.

Dies wäre genau das gleiche, wenn Sie unter Windows sind, alle oben genannten Code ist nur zum Generieren der Plots und Zahlen, um Animationen zu machen. Sie müssen nur die MSE mit einer Zeile:

magick YOURIMAGE -set option:geom "%G" \(+clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: 
+0

Wow, das ist wirklich komplex. Ich werde darauf schauen und sehen, was ich tun kann. Fürs Erste werde ich deine Antwort als akzeptiert betrachten. Vielen Dank! :) –

Verwandte Themen