Welche Interpolation eignet sich am besten für die Bildrotation?

8

Ich habe ein paar Bilder zu drehen. Ich muss sie (mit jeweils unterschiedlichem Winkel) so wenig wie möglich mit Bildartefakten (z. B. Unschärfe) drehen, die während der Bildrotation (aufgrund der Interpolation) auftreten.

Im Moment habe ich GIMP 2.6 mit Cubic und Sinc (Lanczos3) Interpolationen für die Bildrotation. Ich bin mir nicht sicher, welcher ist besser und führt weniger Artefakte ein? Was sind seine Nachteile, wenn überhaupt?

Gibt es noch eine andere Software (z. B. ein Plugin für Photoshop oder Gimp) oder ein Skript für Matlab, das nahezu perfekte Bilddrehungen ermöglicht (z. B. durch Verwendung eines besseren Interpolationsalgorithmus als die in GIMP verfügbaren)?

Vielen Dank im Voraus.

    
Marcin 24.01.2011, 12:36
quelle

2 Antworten

5

Ich erinnere mich an einen Vergleich verschiedener Interpolationsalgorithmen, der ziemlich clever war - das Bild wurde wiederholt um einen festen Winkel gedreht, bis es um 360 Grad gedreht wurde. Irgendwelche Artefakte oder Unschärfe waren sofort offensichtlich, und das Bild konnte direkt mit dem Original verglichen werden. Edit: den Link gefunden - Ссылка

Bitte denken Sie nicht, dass Lanczos dasselbe wie Sinc ist - sie sind verwandt, aber Lanczos handelt mit einiger Genauigkeit, um die Berechnung zu vereinfachen.

    
Mark Ransom 24.01.2011, 15:30
quelle
3

Ein weiterer Ansatz zur Bildrotation ist die Anwendung von zwei Schervorgängen. Siehe Details in "Ein schneller Algorithmus für die allgemeine Rasterdrehung" von Alan W. Paeth (kann in dem populären " Graphics Gems I " Buch in Kapitel 3 Teil 6 oder hier ). Soweit ich verstehe, produziert diese Methode sehr scharfe Bilder.

ImageMagicks -rotate wird auf diese Weise implementiert. So können Sie seine Ergebnisse mit der direkten Rotationsmethode vergleichen.

    
sastanin 24.01.2011 14:50
quelle