1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Matlab - Interpolation von Bilddaten ohne Zwischenraum!?!?

Dieses Thema im Forum "Café" wurde erstellt von Randfee, 01.10.08.

  1. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    Hi,

    seit einiger Zeit versuche ich einen Weg zu finden folgende Punkte zu interpolieren:

    [​IMG]


    Der schwarze Zwischenraum soll dabei nicht 0 sein, sondern garnicht vorhanden bzw: Das Schwarze soll die Interpolation nicht herunterziehen. Dies passiert, wenn man einen Fourrier-Weichzeichner drüber laufen lässt, was in diesem Fall keinen Sinn macht! Also alles Schwarze muss ignoriert und überschrieben werden.
    Zeilenweise hab ich das mal mit "spline" gemacht (siehe die beiden Bilder unten). Ich brauche das aber als 2D und nciht 1D. 1D sieht der code so aus:
    Code:
    for i=1:size(highres,1);   %alle bildzeilen
       
                x=1:size(highres,2);
                y=double(highres(i,:));
                for z=1:size(y,2);
                    if y(z)==0;
                        y(z)=NaN;
                    end;
                end;
                i_horizontal(i,:)=spline(x,y,x);
                          
    end
    [​IMG]

    Wäre super wenn jemand wüsste wie man das macht! Wusste nicht wo ich es sonst hätte posten sollen, reine Bildbearbeitung ist es nicht!
     
  2. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    hat denn keiner ne Idee? Hm... glaub ich nicht, los, her damit! ;)
     
    tsingtao2 gefällt das.
  3. keen

    keen Boskop

    Dabei seit:
    20.11.06
    Beiträge:
    207
    Wenn Apple-User Mathe könnten, würden sie Linux nutzen.
     
  4. MoNchHiChii

    MoNchHiChii Holländischer Prinz

    Dabei seit:
    03.12.07
    Beiträge:
    1.862
    det versteh ich ned :p
     
  5. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    @Randfee: Nochmal kurz zu meinem Verständnis: Du willst also jede dieser weißen Kurven als Graph einer Funktion (z.B. eines Splines) darstellen? Oder was meinst Du mit "Interpolation"?
     
  6. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    einfacher gesagt: Die Punkte sind Höhendaten (der Grauwert=Höhe).

    Wie erstellst du daraus jetzt ein möglichst gutes Höhenbild? Du hast halt nur die gegebenen Punkte, der schwarze Bereich enthält keine Information! Spline ist eine schlechte Methode, die vergisst man hier einfach mal am besten!

    Frage also:
    Wie erzeuge ich aus ein paar vorhandenen Punkten (wie auf dem Bild) ein möglichst gutes Höhhenprofil (hier halt ein S/W Farbprofil). Im ersten Bild siehst du diese Graustufen werte (die form der Linie ist total egal! Das zweite Bild ist ein Versuch die Punkte zu interpolieren, quasi das Höhenbild aus den wenigen Punkten zu erhalten. Wie man aber sieht, gibt es viele dunkle Flecken die eigentlich nicht da sein sollten, da "fällt" die Interpolation sozusagen in ein Loch obwohl da keins ist (schwarz soll ja nicht 0 sein sondern eben keine Werte! Das Dritte bild sieht vom Profil her ganz gut aus, hat aber die Auflösung nicht mehr, womit Ortsauflösung verloren geht.
    Die beiden Versuche waren nun mit "griddata".

    Originalbild
    [​IMG]

    Höhenprofil errechnet mit voller Auflösung
    [​IMG]

    "Höhenprofil" errechnet mit kleiner Auflösung, das bild ist 4x vergrößert!
    [​IMG]
     
  7. harden

    harden Roter Eiserapfel

    Dabei seit:
    28.03.05
    Beiträge:
    1.445
    Hättest du das mal gleich gesagt.

    Höhenmodelle stellt man zum Beispiel mit einem TIN (triangulated irregular network) dar. Such mal nach Delauny und TIN sowie triplot und trimesh.

    Die Theorie dazu findest du z.B. in Karl Kraus "Photogrammetrie Band 3: Topographische Informationssysteme" Kapitel 3
     
    #7 harden, 03.10.08
    Zuletzt bearbeitet: 03.10.08

Diese Seite empfehlen