WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kurve glätten/interpolieren. Spline?

 

Cashney

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 15:28     Titel: Kurve glätten/interpolieren. Spline?
  Antworten mit Zitat      
Hallo!

Im Rahmen einer Arbeit fürs Studium stehe ich vor folgendem Problem:
Ich muss aus einem Bild eine Kurve heraussegmentieren. Durch starkes verrauschen des Bildes und fehlen von Bildinformation an manchen Stellen habe ich aber Sprünge in der Kurve. Sieht ungefähr so aus wie im Anhang. Eine Verbesserung der Kurve durch bessere Bildverarbeitung ist ausgeschlossen.
Frage:
Wie kann ich aus einem Vektor mit der Länge der Breite des Bildes und den Einzelwerten die an entsprechender Stelle den y-Abschnitt darstellen, einen begradigten/geglätteten/interpolierten Vektor bekommen?

Es gibt die Smooth-function in Matlab, aber die erfüllt meine Wünsche nicht ausreichend. Dann habe ich von Spline gelesen aber weiß nicht genau wie ich die Funktion benutzen soll, da ich ja nur einen Vektor hab, Spline aber mindestens 2 und eigentlich 3 Inputs braucht.

Vielen Dank!
Cashney

Anhang:
Einmal der Plot als .jpg und einmal der zugrundeliegende Vektor als .mat

Vektor.m
 Beschreibung:
.mat File des Vektors (Endung auf .mat ändern, kann keine .mat sondern nur .m hochladen...)

Download
 Dateiname:  Vektor.m
 Dateigröße:  688 Bytes
 Heruntergeladen:  696 mal
Vektor.jpg
 Beschreibung:
Plot meines Segmentierungsvektors

Download
 Dateiname:  Vektor.jpg
 Dateigröße:  18.87 KB
 Heruntergeladen:  2816 mal


Bernte
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 21:32     Titel: Interpolieren...
  Antworten mit Zitat      
...kannst du mit interp1. Wenn du nur einen Datenvektor hast, musst du dir eine künstliche x-Achse schaffen.

Code:

messdaten=[1 2 3 2 1 4 5]; %Deine Werte halt
fake_x_achse=1:length(messdaten);
xneu=1:0.1:length(messdaten);%Die Stellen, an denen interpoliert werden soll

yneu = interp1(fake_x_achse, messdaten, xneu , 'spline');

plot(fake_x_achse, messdaten,'o',xneu ,yneu)
 


Mit Interpolieren wirst du aber die Ausreißer nicht los, es füllt nur die Lücken zwischen den Messdaten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.