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

Schwellwert in Profilverlauf suchen

 

batimania83
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.01.12
Wohnort: Bochum
Version: R2010
     Beitrag Verfasst am: 15.01.2012, 00:59     Titel: Schwellwert in Profilverlauf suchen
  Antworten mit Zitat      
Hallo Leute,

ich sitze hier schon den ganzen Abend an einem Problem, für das ich nicht so wirklich die richtige Lösung hinbekomme. Ich habe schon einige Forenainträge gelsen, die meinem Sachverhalt ähnlich sind, aber irgendwie stelle ich mich da wohl etwas dämlich an das ganze auf mein Skript umzumünzen...

Zu Beginn habe ich manuell zwei Punkte per ginput aus einem image ausgewählt und mir mit dem Befehl improfile den Verlauf der Intensitäten zwischen diesen Punkten ausgeben lassen (schräg durch das Bild). Mittels der Funktion max habe ich dann Wert des Maximums und die bis dahin zurüclgelegten Pixel in diesem Profil ermittelt, wobei das Maximum ein stark ausgeprägter Peak im Profil ist. Jetzt möchte ich mir gerne nach diesem Maximum bzw. auf der abfallenden Flanke des Peaks die zurückgelegten Pixel bis zum Erreichen eines Schwellwerts (0.2*max) ausgeben lassen, was aber irgendwie so gar nicht klappen möchte.
Hier zunächst die paar Zeilen Code:

Code:
figure
[dx,dy,d]=improfile(A,a,b);
plot(d)
[maxwert,maxzeile]=max(d)

idx=1:length(d);
pos=idx(maxzeile+1:end);

schwellwert=.2.*maxwert
[rows cols]=find(d(pos)==schwellwert)


Ich habe irgendwie gar keine Idee, wo das Problem liegen könnte bzw. was ich dabei falsch mache. Wahrscheinlich (hoffentlich) nur eine Kleinigkeit, aber ich stehe da als Matlab-Anfänger wie Ochs vorm Berg.

Ich hoffe ihr könnt mir auf die Sprünge helfen. Vielen Dank im Voraus.

Grüße,
Sebastian
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.01.2012, 02:42     Titel: Re: Schwellwert in Profilverlauf suchen
  Antworten mit Zitat      
Hallo Sebastian,
Es muss ja kein bestimmtes Element exakt dem Schwellenwert entsprechen.

Code:
schwellwert = 0.2 .* maxwert;
[rows cols]=find(d(maxzeile+1:length(d)) <= schwellwert, 1)

Nun wird das erste Element ausgegeben, das kleiner oder gleich dem Schwellenwert ist.

Ich habe die Indizierung in den d()-Ausdruck eingefügt, da das deutlich schneller ist:
Code:
x = rand(1, 2000);
a = 1:1000;
y = x(a);  % Langsam
z = x(1:1000);  % Schnell

Im zweiten Fall testet Matlab nur für das erste und letzte Element, ob sie innerhalb der Limits sind, im ersten Fall dagegen für jeden Index.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
batimania83
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.01.12
Wohnort: Bochum
Version: R2010
     Beitrag Verfasst am: 15.01.2012, 15:40     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich hatte gehofft, dass es nur eine Kleinigkeit ist, also vielen Dank dafür...jetzt klappt alles wunderbar Very Happy

Grüße,
Sebastian
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 - 2024 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.