Muss ich eine Bildperspektivenoperation über die Befehlszeile durchführen?
Gibt es einen Ort, an dem die Dokumentation ordnungsgemäß bereitgestellt wird? Ich habe diese Frage auf Stack Overflow gestellt. Sie können nachsehenHier.
Wenn ein anderes Tool verfügbar ist, das eine Befehlszeilenschnittstelle für dasselbe bietet, wäre das auch für mich gut.
Antwort1
Das wahrscheinlich beste Tool zur Bildbearbeitung ist ImageMagick. Wenn Sie sich die Dokumentation ansehen, finden Sie ausführliche Beispiele, die zeigen, wie Sie die -distort
Funktion verwenden, und ich glaube, das ist genau das, wonach Sie suchen.
Beispiel
Vorher Nachher
Befehlszeile zum Durchführen der Konvertierung:
$ convert checks.png -filter point
-virtual-pixel tile -mattecolor DodgerBlue
-distort Perspective '0,0 20,60 90,0 70,63 0,90 5,83 90,90 85,88'
horizon_tile_point.png
Es gibt zwei weitere Methoden zum Sampling, um das resultierende Bild besser aussehen zu lassen. Genauer gesagt „Grid Super Sampling“ und „Elliptical Weighted Area (EWA) Resampling“. Letzteres ist die Standardeinstellung.
Wie berechne ich die Koordinaten?
Es gibt zwei Ressourcen, um zu verstehen, wie man die Koordinatenreihe generiert convert
. Die erste ist die, die ich oben angegeben habe. Die zweite ist diese SO-Frage und Antwort mit dem Titel:Perspektivische Projektionsverzerrung verstehen ImageMagick, und zwar@KurtPfeifles Antwort.
Die Koordinaten lauten wie folgt:
Sx1,Sy1 Dx1,Dy1 Sx2,Sy2 Dx2,Dy2 Sx3,Sy3 Dx3,Dy3 ... Sxn,Syn Dxn,Dyn
- x wird verwendet, um eine X-Koordinate darzustellen.
- y wird verwendet, um eine Y-Koordinate darzustellen.
- 1, 2, 3, ... n wird verwendet, um das 1., 2., 3., ... n-te Pixel darzustellen.
- Für das Quellpixel wird hier S verwendet.
- D wird hier für das Zielpixel verwendet.