Frage

So, hier ist mein Problem:

Ich habe ein Bild, das Bild groß ist (hohe Auflösung) und es muss klein (viel geringere Auflösung) sein.

Also habe ich die naive Sache zu tun (jedes zweite Pixel töten) und das Ergebnis sieht schlecht.

Also ich versuche, etwas intelligenter zu tun (Tiefpassfilterung unter Verwendung eines Fourier-Transformation und Re-Sampling im Fourierraum) und das Ergebnis ist ein wenig besser, aber immer noch ziemlich schlecht.

Also meine Frage, gibt es ein wahrnehmungs motivierte Bild Downsampling-Algorithmus (oder Implementierung)?

edit: Während mir bewusst eine Reihe von Resampling-Techniken bin, ist meine Anwendung mehr mit der Wahrnehmungs Beibehalt, anstatt Herstellung von glatten Bildern.

edit2: es sicher ist, ich ein gewisses Maß an Vertrautheit mit digitaler Signalverarbeitung muß davon ausgehen, Faltungen, Wavelet-Transformationen, usw.

War es hilfreich?

Lösung

Bicubic Interpolation wird im Allgemeinen als gut genug betrachtet, aber es gibt keine perfekte Lösung, es hängt von den Menschen und von den Eigenschaften des Bildes neu abgetastet werden.

Links zum Thema:

Ich wusste nicht einmal, dass die Schärfe auch genannt wurde Acutance- .

Aliasing ist ein Problem, das auftreten kann, wenn naiv Abwärtsabtastens.

Andere Tipps

Lesen Sie dieses:

http://www.dspguide.com/

OK, das ist ein ganz gelesen. Aber Verständnis Filterentwurf wäre praktisch.

Im Allgemeinen ist das Verfahren zum Skalieren eines Bildes von W1 x H1 bis W2 x H2 wobei W1, W2, H1, H2 ganze Zahlen sind, ist neu W3 zu finden, H3, so dass W1 und W2 sind ganzzahlige Faktoren von W3 und H1 und H2 sind ganzzahlige Faktoren von H3 und dann Füllt das Originalbild mit Nullen (verwendet, um Platz um die Pixel des Originalbildes), so dass es jetzt W3 x H3 in der Größe. Dies führt zu hohen Frequenzen aufgrund von Diskontinuitäten in dem Bild, so dass man einen Tiefpassfilter auf das Bild anzuwenden, und dann an die neuen Größe (W2 x H2), um das gefilterte Bild dezimiert. Klingt wie Sie könnten versuchen, dies bereits zu tun, aber die Filterung kann im Zeitbereich durchgeführt werden, so dass die Fourier-Transformation ist nicht wirklich notwendig.

In der Praxis ist der Prozess, den ich gerade optimiert beschrieben wird (Sie zu beachten, dass, wenn ein Faltungsfilter zum hochskalierte Bild Anwendung der meisten Begriffe 0 sein wird, so dass Sie die meisten der Multiplikationsoperationen in Ihrem Algorithmus vermeiden können, für Beispiel. und da Sie sich viele der gefilterten Ergebnisse werfen am Ende, Sie nicht mit denen berechnen müssen, so dass Sie mit einer Handvoll von Multiplikationen und Additionen für jedes Pixel im Zielbild am Ende, im Grunde. der Trick ist, Figur aus dem Koeffizienten zu verwenden.)

libswscale im ffmpeg Projekt so etwas wie dies der Fall ist, glaube ich. Check it out:

http://gitorious.org/libswscale

Wie andere darauf hingewiesen, (und Sie bemerkt, scheinbar) Dezimieren der Bild einleitet Aliasing-Artefakte. Ich kann nicht sicher über Ihr Resampling Implementierung sein, aber die Technik hat interessanten gotchas je nach Fenstergröße Sie verwenden und anderen Implementierungsdetails.

Pascal ist richtig. Abhängig von der Bild, und auf das, was Sie wollen. Einige Faktoren:

  • Erhaltung scharfe Kanten
  • Erhaltung Farben
  • Algorithmus Geschwindigkeit

Dies ist Ihre Methode .

Einige andere:

Beachten Sie, dass manchmal Resampling nach unten können Sie ein schärferes Ergebnis erzielen als beispielsweise eine Kamera mit niedrigerer Auflösung verwendet wird, weil es Kanten im Bild mit hoher Auflösung, die nicht durch eine niedrigere Auflösung Gerät erkannt werden.

Side. Hinweis: Viele Algorithmen (insbesondere Nearest Neighbor) optimiert werden kann, wenn Sie mit einer ganzen Zahl sind Verkleinerung (beispielsweise durch 4 oder 6 Dividieren)

Empfohlene ImageMagick "general purpose" Abwärtsabtastens Methoden werden hier diskutiert: http: // www .imagemagick.org / Verwendung / Filter / nicolas / # Downsample

Sie könnten einen Inhalt bewusst Redimensionierung Algorithmus versuchen. Siehe: http://www.seamcarving.com/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top