Bilineare Interpolation C++



  • Hallo,

    ich bin grad dabei eine Methode für die bilineare Interpolation zu schreiben. Habe es aber soweit nur bekommen, dass ich ein eingelesenes Bild um den Faktor 2 verkleinern kann. Ich möchte nun auch eine zur bilinearen Vergrößerung schreiben, oder besser eine allgemeine für beide Fälle. Leider finde ich die dafür vorgesehenen Formeln bei Wikipedia bisschen unverständlich. Hat denn jemand schon mal vielleicht sich damit beschäftigt?

    Viele Grüße



  • libswscale --> schneller & besser

    "lineare interpolation" und Bilder verkleinern beißt sich. Um Alias-Artefakte zu vermeiden, musst Du das Abtasttheorem berücksichtigen. Das heißt: Hier ist ein Anti-Alias-Filter gefragt.

    Und die zwei Dimensionen kannst Du getrennt handhaben.

    Wenn Du zum Beispiel Bildzeilen im Verhältnis 2:1 stauchen willst, könntest du einen 6-tap-Filter verwenden. Damit wird jedes neue Pixel ein gewichtetes Mittel von 6 Originalpixel. Beispielgewichte:
    -1/32 3/32 14/32 14/32 3/32 -1/32

    Auch ganz toll:
    "Image interpolation and resampling"
    http://bigwww.epfl.ch/publications/thevenaz9901.pdf


Anmelden zum Antworten