Wie stellt man ein großes Bild wieder her, wenn es mehrere Ernten mit ausreichender Überlappung gibt?

336
Prateek

Angenommen, Sie haben mehrere kleine Bilder, die alle aus einem einzigen großen Bild geschnitten wurden. Jedes kleine Bild ist ein Teilrechteck des großen Bildes. Die kleinen Bilder haben eine ausreichende Überlappung. Sie haben jedoch kein großes Bild: Wie können Sie angesichts der kleinen Bilder das große Bild wiederherstellen? Gibt es eine Software, um dies zu automatisieren?

Angenommen, es handelt sich um verlustfreie Bildformate wie PNG. Es gibt keine Rotation, keine perspektivische Verzerrung oder sonstige Unschärfen. Jedes Eingabebild ist ein exakter Ausschnitt des gewünschten Ausgabebildes.

Etwas genauer finden Sie ein Bild X, möglicherweise mit einigen "leeren" Pixeln, so dass:

  • Jedes Eingabebild ist ein Unterrechteck von X.
  • Jedes Pixel von X ist entweder "leer" oder stammt von mindestens einem der Eingabebilder.
  • X ist "so klein wie möglich".

Die ersten beiden Anforderungen sind präzise, ​​ich habe die dritte nicht perfekt präzisiert. Die dritte Anforderung besteht darin, triviale Lösungen auszuschließen, z. B. indem die Eingabebilder einfach nebeneinander angeordnet werden. Leere Pixel sind zulässig, da die Eingabebilder möglicherweise nicht perfekt ausgerichtet sind, um ein Rechteck zu bilden. Zum Beispiel, wenn die Eingänge sind

ABC EFG DEF HIJ 

Ich würde die Ausgabe erwarten

ABC DEFG HIJ 

(Hier stellt jeder Buchstabe ein Pixel einer bestimmten Farbe dar. Beispielsweise ist jedes A ein weißes Pixel, jedes B ein schwarzes Pixel usw.).

Ein Anwendungsfall besteht aus der Kombination mehrerer Screenshots von etwas, das Sie schwenken können (z. B. eine Karte oder ein Spiel).

Eine kurze Google-Suche ergab keine Software dafür. Es gibt Panorama-Stitching-Tools wie Hugin, aber sie sind "zu intelligent", und ich bin nicht sicher, ob sie die Anforderungen erfüllen können, die besagen, dass "jedes Eingabebild ein exakter Ausschnitt der Ausgabe sein muss".

1
Verwenden Sie einfach einen Bildeditor wie Photoshop oder GIMP. Erstellen Sie eine große Leinwand in der von Ihnen gewünschten Größe und einem Arbeitsraum. Öffnen Sie die Bilder in jeweils einer separaten Ebene. Dann positionieren Sie jeden. Bei Überschneidungen können Sie das obere Bild vorübergehend halbtransparent machen, um es auszurichten. Wenn alles vorhanden ist, reduzieren Sie das Bild und schneiden Sie den Zuschnitt ab. fixer1234 vor 9 Jahren 0
Ja, aber das würde eine genaue, feine Ausrichtung erfordern. Wahrscheinlich mit viel Zoomen und Verkleinern, vorsichtigen Mausbewegungen und dergleichen. Ich würde gerne eine Software finden, die all diese manuelle Arbeit für mich automatisiert. Prateek vor 9 Jahren 0
Ich bin gespannt, warum dies auf Eis gelegt wurde. Ich hielt es für ziemlich klar, was gefragt wurde, tatsächlich mit mehr mathematischer Genauigkeit als nötig. Prateek vor 9 Jahren 0
Ich habe die Seite [How to ask] (http://superuser.com/help/how-to-ask) nachgeschlagen, und dies scheint den Richtlinien zu folgen: ** Suche und Recherche **: Es heißt, dass Hugin usw. berücksichtigt wurde und nicht geeignet gefunden. ** Seien Sie beim Thema **: Fragen Sie nach einer Softwareempfehlung oder nach einer cleveren Methode, um Software zu verwenden (informieren Sie mich, wenn es sich nicht um ein Thema handelt). ** Seien Sie spezifisch **: Scheint spezifisch genug und beschreibt das Problem im Detail. ** Machen Sie es für andere relevant **: Es wird ein Beispielanwendungsfall angegeben. Ich hoffe es ist klar. ** Sei offen **: Ich glaube nicht, dass die Frage dem widerspricht. :-) Prateek vor 9 Jahren 0
Was ich in meinem Kommentar beschrieben habe, ist eine Lösung und ja, es kann ein bisschen Arbeit sein. Wenn Sie nach Software suchen, um dies automatisch durchzuführen, können Sie Produktempfehlungen anfordern (http://superuser.com/help/on-topic). Außerdem scheinen Sie sehr spezifische Anforderungen zu haben, sodass Sie in der Lage sind, die verfügbaren Möglichkeiten zu recherchieren und die Optionen zu gewichten. fixer1234 vor 9 Jahren 0

0 Antworten auf die Frage