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

Wendepunkt eines Spline, der aus Helligkeitswerte kommt

 

Max21

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.03.2014, 21:27     Titel: Wendepunkt eines Spline, der aus Helligkeitswerte kommt
  Antworten mit Zitat      
Hallo,

ich habe das Problem den Wendepunkt eines Spline zu bestimmen, den ich aus einem schwarz/weiß Bild mit csapi (x,y) bestimmt habe.
Dafür habe ich einen Ausschnitt gewählt, in dem er die Helligkeitswerte heraussucht.

Ich habe ja keine direkten Werte um das zu berechnen.

Danke schon mal im Voraus!


JKnopf
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 16.03.14
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 24.03.2014, 22:23     Titel:
  Antworten mit Zitat      
Hi,

du könntest versuchen den Spline per Taylor-Approximation zu fitten. und dann wie in der Schule 2. Ableitung.

Gruß Jim
_________________

"good manners are just a way of showing other people we have respect for them" (Blast from the Past)

If you can't say somethin' nice ... don't say nothin' at all. (Thumper, Bambi)
Private Nachricht senden Benutzer-Profile anzeigen
 
Max21

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2014, 10:21     Titel:
  Antworten mit Zitat      
Danke,
das hat geklappt.

Jetzt muss ich noch den x-Wert des Maximum von y von der blauen Funktion in dem Bereich zwischen 260 und 263 bekommen. Da komme ich leider nicht weiter. Mehrere Versuche sind bereits fehlgeschlagen. (siehe Anhang)

Danke schonmal

untitled.png
 Beschreibung:

Download
 Dateiname:  untitled.png
 Dateigröße:  66.08 KB
 Heruntergeladen:  404 mal
untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  84.74 KB
 Heruntergeladen:  453 mal
 
JKnopf
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 16.03.14
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 25.03.2014, 10:47     Titel:
  Antworten mit Zitat      
Versuch es mal damit


http://www.mathworks.com/matlabcent.....nder/content/peakfinder.m


Gruß JKnopf
_________________

"good manners are just a way of showing other people we have respect for them" (Blast from the Past)

If you can't say somethin' nice ... don't say nothin' at all. (Thumper, Bambi)
Private Nachricht senden Benutzer-Profile anzeigen
 
Max21

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2014, 13:15     Titel:
  Antworten mit Zitat      
Sorry aber ich kriege das irgendwie nicht hin. kriege immer wieder Fehlermeldungen. Bin auch noch Anfänger bei Matlab ...

Code:
x=250:270;
y=D(x,i);
plot(x,y)

cs = csapi(x,y);
fnplt(cs, '-r');

df = fnder(cs);
[fnval(cs,x); fnval(df,x); fnval(fnder(df),x)];

fnplt(df);

findpeaks(df);



Ich habe ja auch keine Werte sondern nur die Funktion df. Mit findpeaks, max und einigen anderen hab ichs schon ausprobiert aber komme auf keine Lösung Sad
 
JKnopf
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 16.03.14
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 25.03.2014, 13:58     Titel:
  Antworten mit Zitat      
dein df ist ein struct und darin sind unter coefs die Funktionswerte enthalten, die du für den peakfinder benutzen kannst. versuchs mal damit:

Code:

clear all,close all, clc


x=250:0.01:270;
y=D(x,i);
plot(x,y)

cs = csapi(x,y);
fnplt(cs, '-r');

df = fnder(cs);
[fnval(cs,x); fnval(df,x); fnval(fnder(df),x)];

fnplt(df);

[pks,locs]=findpeaks(df.coefs(:,1));


figure(2)
plot(x(1:2000),df.coefs(:,1));
hold on
plot(x(locs),pks,'.r');
 


Gruß JKnopf
_________________

"good manners are just a way of showing other people we have respect for them" (Blast from the Past)

If you can't say somethin' nice ... don't say nothin' at all. (Thumper, Bambi)
Private Nachricht senden Benutzer-Profile anzeigen
 
Max21

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2014, 14:58     Titel:
  Antworten mit Zitat      
Erstmal Danke für die schnelle Antwort.

Dann kriege ich die Fehlermeldung:

??? Subscript indices must either be real positive integers
or logicals.

Error in ==> EinBildObenKl2Versuch at 27
y=D(x,i);%sum(II,2);

und wenn ich beim x=250:0.01:270 die 0.01: wieder raus nehme kommen Ergebnisse zu stande aber nicht die richtigen.

Ich habe auch schon fast eine Lösung gefunden mit:

maxval = -fnmin(fncmb(df,-1))

nur dann wird immer nur der y-Wert und nicht der x-Wert angezeigt herausgegeben. Vllt weißt du sonst dafür noch eine schnelle Lösung.

Danke
 
JKnopf
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 16.03.14
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 25.03.2014, 17:51     Titel:
  Antworten mit Zitat      
Hi,
Du machst das ja schon ganz gut...Kannst du vielleicht mal deine Matrix D als .mat datei speichern und hochladen, dann kann ich das besser nachvollziehen.

Gruß JKnopf
_________________

"good manners are just a way of showing other people we have respect for them" (Blast from the Past)

If you can't say somethin' nice ... don't say nothin' at all. (Thumper, Bambi)
Private Nachricht senden Benutzer-Profile anzeigen
 
Max21

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2014, 18:07     Titel:
  Antworten mit Zitat      
Besten danke für deine Hilfe,

habe soeben endlich eine Lösung gefunden:

Code:
[y_max(j),x_max(j)] = fnmin(fncmb(df,-1));


somit kann ich dann auch den Mittelwert mit mean (x_max) von jedem Bild berechnen, da ich mehrere Bilder hab.

Gruß Johannes
 
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.