Wie kann ich automatisch intelligentes Zuschneiden auf Hunderte von Münzfotos anwenden?

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein

Ich habe schreckliche Schwierigkeiten. Ich muss routinemäßig Hunderte von Münzbildern fotografieren und dann bearbeiten. Dann schneide ich den überschüssigen Hintergrund von Hand aus und lasse einen kleinen Rand um die Münze. Ich weiß, dass dies automatisiert werden kann. Ich scheine nicht in der Lage zu sein, es zum Laufen zu bringen. Ich muss die Hintergrundfarbe automatisch auf eine Toleranz und mit einem Rand vom mittleren Bild zuschneiden.

Warum nicht in der Kamera mit einem Zoom für die gewünschten Ränder oben und unten zuschneiden (dh die Münzen auf die gleiche Größe und Position im Rahmen bringen). Wenn Sie sicherstellen, dass die Münze(n) im Rahmen zentriert sind, sollte ein Zuschneideskript oder eine Aktion das Problem lösen.
Sie sagen, dass Sie es nicht zum Laufen bringen können, aber Sie haben uns nichts darüber erzählt, was Sie versucht haben. Wenn Sie erklären, was Sie bereits versucht haben und wie das fehlschlägt, werden wir davon abgehalten, etwas vorzuschlagen, von dem Sie wissen, dass es nicht funktioniert.

Antworten (3)

Dies erfordert wahrscheinlich ein wenig Skripting oder Programmierung. Informieren Sie sich über die Circle-Hough-Transformation . Grundsätzlich erkennt es Kreise in einem Bild. Während die Mathematik ziemlich kompliziert ist, finden Sie wahrscheinlich eine anständige Bibliothek in einer Sprache, die einen Großteil der Komplexität abstrahiert.

Schauen Sie sich zum Beispiel die OpenCV-Bibliothek (Open Computer Vision) an, die über C-, C++-, Python- und Java-Schnittstellen verfügt. Als Beispiel für die Verwendung finden Sie hier ein Tutorial zum Erkennen von Kreisen mit OpenCV in Python . In diesem Beispiel ist der circlesVektor eine Liste von 3-Tupeln, wobei jedes Tupel die (x-Koordinate, y-Koordinate, Radius) des gefundenen Kreises enthält. Um den Kreis mit dem größten Radius zu finden, etwa so:

largest_circle = max(circles, key=lambda c: c[2])

findet den größten Kreis im Bild (der vermutlich Ihre Münze ist) als dasselbe (x, y, r)-Tupel. Danach können Sie einfach um reinen kleinen Betrag erhöhen (um einen Rand zu erstellen), sodass Sie das Bild beschneiden können bei: (x min = x − r, x max = x + r), um (y min = y − r, y max = y + r).

Anstatt OpenCV zu verwenden, verwendet dieses Beispiel die Bildverarbeitungsbibliothek scikit-image mit Python. Das Bild in diesem Beispiel ist ein Bild von mehreren aufgereihten Münzen, die die gefundenen Kreise im Bild zeigen.

Im Nachhinein sollte diese Frage vielleicht auf Stackoverflow verwiesen werden.
Ich denke, er sucht eher nach einer bereits vorhandenen Softwarelösung, die konfiguriert und nicht entwickelt/skriptiert werden kann, wie dies bei Photoshop-Aktionen der Fall wäre.
@dragos Du hast wahrscheinlich recht. Ich hatte gehofft, das OP würde mit Beispielbildern vor/nachher antworten, wie Sie es angefordert haben. Wenn es im Originalbild große Unterschiede bei Vergrößerung, Münzplatzierung usw. gibt, werden die besten Ergebnisse wahrscheinlich von einer programmatischen oder algorithmischen Lösung erzielt.

In Photoshop können Sie ein Automatisierungsskript erstellen, das immer wieder dasselbe macht.

Nun, mit diesen Worten sollten Ihre Bilder irgendwie identisch sein, damit das Skript gut funktioniert. Sie zeichnen einmal auf, was Sie normalerweise tun, und speichern dann die Aktion. Danach ist der einfache Teil, indem Sie die Aktion einfach im Stapel ausführen.

So nehmen Sie es auf.

Gehen Sie zum Menü Fenster und wählen Sie Aktionen. Es erscheint eine kleine Palette mit bereits vordefinierten Photoshop-Aktionen. Um eine vordefinierte Aktion zu verwenden, wählen Sie sie einfach aus und drücken Sie unten auf die Wiedergabetaste. Wenn Sie Ihre eigene erstellen möchten, klicken Sie auf die Menüschaltfläche in der oberen rechten Ecke und wählen Sie „Neue Aktion“. Benennen Sie Ihre Aktion, klicken Sie auf OK, und Sie befinden sich automatisch im Aufnahmemodus. Alles, was Sie in Photoshop tun, wird jetzt aufgezeichnet. Führen Sie also alle Aktionen aus, die Sie automatisieren möchten, und klicken Sie dann auf die Stopp-Schaltfläche unten in der Aktionspalette.

Wie wird dies von Nutzen sein? Sicherlich würde eine Aktion, die das Zuschneiden beinhaltet, entweder jedes Bild genau gleich zuschneiden oder anhalten, während Sie es manuell zuschneiden. Ich sehe nicht, wie das funktionieren könnte.
Es scheint, als würde dies nur funktionieren, wenn sich die Münze für jedes Foto im selben Teil des Rahmens befindet. Ist das richtig?
Erstens ist es eine falsche Annahme, ernten zu wollen. Die Aktion sollte "Farbbereich auswählen (das Schwarze)" sein ---> "Feder (vielleicht 2 px, abhängig von der Auflösung)" ---> Invers auswählen ---> Neue schwarze Ebene erstellen ---> Auswahl kopieren die schwarze Schicht --- > Speichern . Natürlich können Farbanpassungen, Kontrast und Schärfe bei Bedarf vorgenommen werden. Auf der anderen Seite ist das alles irgendwie übertrieben. Er sagte, er müsse es routinemäßig tun, also sollte er im besten Fall eine Art Setup haben, bei dem die Kamera montiert ist, ein Ringblitz, manuelle Belichtung, Fokussierung und nur ein Klick auf die Münze, ein Klick. PS ist nicht nötig

Wenn Sie Photoshop oder ein gleichwertiges Gerät haben, können Sie eine Aktion ausführen, um jedes JPEG der Reihe nach zu öffnen.

*Fügen Sie eine neue Hintergrundebene in einer neutralen Farbe hinzu, gehen Sie zur Münzebene, *wählen Sie die Farbe des Hintergrunds aus, auf dem die Münze saß, als sie fotografiert wurde, *bearbeiten Sie die Auswahl, um sie kleiner zu machen (mit "Kante verfeinern"),
* die Auswahl löschen.

[Dadurch bleibt das Münzbild mit einem winzigen Rand der ursprünglichen Hintergrundfarbe sitzen]

Dann können Sie als GIF mit eingeschalteter Transparenz speichern und auf die neue Hintergrundfarbe einstellen. Wenn Sie PS haben und dies tun möchten, kann ich eine Reihe von Bildern erstellen, um den Zug der Änderungen festzuhalten.

Ja, ich habe PS6. Ich kann nirgendwo Refine Edge finden.
Ich habe zwei Bilder gepostet, sie sind Bilder nach dem Zuschneiden.
Die Vorbeschneidung hat nur mehr diese Hintergrundfarbe.
Nun, das ist ein Toughie.
Nun, das ist ein Toughie. Wenn die Programmierlösung von scottbb nicht machbar ist, schlage ich vor, dass Sie sich eine routinemäßige Methode zum Schießen der Münzen ansehen. Wenn sie sich alle in denselben Haltern befinden, machen Sie einen kleinen Aufnahmehalter und standardisieren Sie die Kameraposition und den Abstand (möglicherweise mit einem Aufnahmeständer), damit das Bild der Münze immer an derselben Stelle zentriert ist. Führen Sie dann eine PS-Aktion durch, die jede Datei importiert und die Leinwandgröße in ein Quadrat ändert, das die Münze umschließt.