Java - Ich brauche einen sehr schnellen Bildskalierungsalgorithmus

7

Ich arbeite an einer Midlet-Anwendung. Ich bin in der Notwendigkeit, Bilder sehr oft zu skalieren. Dies ist zu einem Problem geworden, da einige Telefone ziemlich langsam sind und die Skalierung zu lange dauert.

Zur Zeit verwende ich Image.createRGBImage (int, int, int, boolean), um das Bild zu skalieren.

Ich habe mich gefragt, ob jemand von euch von einer sehr effizienten und schnellen Methode wusste, ein Bild zu skalieren.

Hinweis: Dies ist eine Midlet-Anwendung, daher ist nur JavaME verfügbar, was bedeutet, dass ich keinen Zugriff auf einige andere Bibliotheken habe, die in der vollständigen Java-Version verfügbar sind.

Anmerkung2: Die meisten meiner Skalierungen werden von kleinen bis zu großen Bildern gemacht, obwohl ich auch das Bild verkleinere.

    
Tony 23.11.2011, 15:38
quelle

1 Antwort

29

Denken Sie daran, dass bei der Diskussion von Skalierungsalgorithmen immer ein Kompromiss zwischen Geschwindigkeit und Bildqualität besteht und die ideale Lösung für Ihren Fall erfordert möglicherweise einige Nachforschungen und Tests.

Nächster Nachbar ist die einfachste und schnellste Implementierung der Bildskalierung.

Es gibt ein nettes Intro auf dem Bild Maßstab / Größe auf Coding Horror , die überprüft ein paar Techniken und vergleicht ihre Qualität.

Ich kann mir vorstellen, dass Sie mit einem sehr kleinen Anzeigegerät arbeiten, so dass die Bildqualität am Ende keine Rolle spielt. Einige Leute rufen diese schnellste Bildskalierungsimplementierung für J2ME auf .

Aber wenn Sie bereit sind, etwas anderes zu lesen, dieses Papier präsentiert eine niedrige Kosten (Bedeutung "sehr Fast ") Algorithmus zur Skalierung, der die Interpolation am nächsten Nachbarn signifikant verbessert. Es gibt Quellcode zur Verfügung, und sie präsentieren auch eine Entwicklung dieser Forschung hier .

Zu guter Letzt cvResize() von OpenCV (Open Source / Cross-Source) Plattformbibliothek für die Bildverarbeitung). Die Leute von willow garage sind ziemlich gut darin, schnelle Prozeduren für die Bild- / Videoverarbeitung zu erstellen, und diese Funktion bietet ein paar Techniken zur Skalierung, so dass es sich lohnt, die Implementierung zu überprüfen.

    
karlphillip 03.12.2011, 02:36
quelle