Nicht sicher, ob dies für alle Ihre Bilder arbeiten, denn es gibt einige Probleme mit ihnen:
- Artefakte an den Rändern
- ungleichmäßige Beleuchtung oder Schatten
- Lärm
- kontrastarm
aber Sie sollten einige Ideen für die Behandlung einiger der Probleme bekommen.
Um die Artefakte rund um die Kante loszuwerden, können Sie das Bild um 2 verkleinern.5% auf allen Seiten - im Wesentlichen eine zentrierte Ernte, wie folgt aus:
convert noisy1.jpg -gravity center -extent 95x95% trimmed.png
Um die Schatten/ungleichmäßige Beleuchtung zu sehen, werde ich Ihr Bild auf eine Reihe von festen schwarzen feste normalisieren
convert noisy1.jpg -normalize result.png
: weiß und Sie werden den Schatten unten links sehen
diese zu entfernen, würde ich Ihr Bild klonen und die niedrige Frequenz Durchschnitt über eine größere Fläche berechnen und dann subtrahieren, dass, so dass sich langsam ändernde Dinge entfernt werden:
convert noisy1.jpg \(+clone -statistic mean 25x25 \) -compose difference -composite -negate result.png
, dass dies gibt, und dann können Sie Normalisieren versuchen es selbst zu sehen, dass der Schatten verschwunden ist:
Wenn ich eine Canny-Kantenerkennung an, dass jetzt bewerben, erhalte ich diese:
convert noisy1.jpg \(+clone -statistic mean 25x25 \) -compose difference -composite -normalize -negate -canny 0x1+10%+30% result.png
ist hier ein sehr grobes, aber hoffentlich wirksam, kleines Skript der ganze Menge zu tun. Es überprüft die Parameter nicht. Speichern unter $HOME/cropper
.
#!/bin/bash
src=$1
dst=cropped-$1
tmp="tmp-$$.mpc"
trimbox=$(convert "$1" -extent 95x95% -write "$tmp" \(+clone -statistic mean 25x25 \) -compose difference -composite -normalize -negate -canny 0x1+10%+30% -format %@ info:)
convert "$tmp" -crop $trimbox "$dst"
rm tmp-$$.*
Machen Sie das Skript ausführbar mit:
chmod +x $HOME/cropper
Und mit einem einzigen Bild wie folgt ausführen:
cd /path/to/some/images
$HOME/cropper OneImage.jpg
Wenn Sie Hunderte von Bildern haben, ich zum ersten Mal ein Backup machen würde, und dann tun sie alle parallel mit GNU Parallel
parallel $HOME/cropper {} ::: *.jpg
Normalerweise würde eine Kombination von Unschärfe und Schärfe ausreichen, um die interessierende Region in einem verrauschten Bild zu isolieren. Allerdings zeigen beide Beispiele gültige Markierungen an den äußersten Bildkanten (oben rechts von Banane und unten rechts von Kirsche). Können wir annehmen, dass alle Markierungen an den Kanten ignoriert werden sollten? – emcconville
Ja, das ist eine sichere Annahme, dass Markierungen um den Rand ignoriert werden können, sie sind wahrscheinlich nur zufällige Markierungen. – JDW