• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Matlab - Interpolation von Bilddaten ohne Zwischenraum!?!?

Randfee

Pomme d'or
Registriert
28.12.04
Beiträge
3.113
Hi,

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

punkte.gif



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

punkte_interpoliert.jpg


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!
 

keen

Boskop
Registriert
20.11.06
Beiträge
207
Wenn Apple-User Mathe könnten, würden sie Linux nutzen.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
@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"?
 

Randfee

Pomme d'or
Registriert
28.12.04
Beiträge
3.113
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
i_lines.gif


Höhenprofil errechnet mit voller Auflösung
i_surface2.jpg


"Höhenprofil" errechnet mit kleiner Auflösung, das bild ist 4x vergrößert!
i_surface.jpg
 

harden

Roter Eiserapfel
Registriert
28.03.05
Beiträge
1.445
einfacher gesagt: Die Punkte sind Höhendaten (der Grauwert=Höhe).

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
 
Zuletzt bearbeitet: