wenn du die randpunkte gefunden hast könnte ich mir vorstellen das man die mitte dazwischen einfach mit einem gleitenden mittelwert filter glätten kann. dazu giebts es auch ein beispiel in der doc.
_________________
wenn du die randpunkte gefunden hast könnte ich mir vorstellen das man die mitte dazwischen einfach mit einem gleitenden mittelwert filter glätten kann. dazu giebts es auch ein beispiel in der doc.
Das schau ich mir jetzt an.
das obere Beispiel habe ich gemacht mit einer einzigen ziele aus den Daten
um zu sehen was genau passiert,
jedoch sind die Daten so verwackelt das ich überall kanten habe
das ist so nicht OK, und wenn ich es glätte dann geht mein Struktur zu stark verloren
Das ist der Code:
Code:
load('replay/replay.mat'); % X Y Z Koordinaten laden
y = Z1(100:579, 1900:1900);
t = Y1(100:579, 1900:1900);
y2 = smooth(y, 5);
figure('units','normalized','outerposition',[0011]);
hold on
plot(t, y2, 'm')% geglättet % plot(t, y, 'blue') % nicht geglättet
[ymax2,imax2,ymin2,imin2] = extrema(y2);
plot(t(imax2),ymax2,'r*',t(imin2),ymin2,'c*') hold off
OK das mit dem "findpeaks"geht deutlich einfacher als das andere
jedoch habe ich hier das Selbe Problem das ich zu viel der Punkte bekomme.
(Bild) der Code ist unten angehängt für das Bild.
jetzt stellt sich die Frage wie kann ich die Daten Glätten ohne das ich die Vakanten Großen Schluchten (Täler) verliere, denn ich sollte ja die Öffnungs Größe Später bestimmen könne, und wie Tief die Teller sind.
Code:
Code:
load('replay/replay.mat'); % X Y Z Koordinaten laden
data = Z1(100:579, 1900:1900);
%data = [2581556101031207];
rauszufinden wie groß die diffenrenz zum nachbarn ist. damit kannst du vieleicht die randpunkte aufspüren. und dann dazwischen mit einem filter glätten oder auch mittels einer interpolation. man könnte da auch ein polynom dann reinlegen etc.
wichtig wäre wie gesagt erstmal die randpunkte genau zu idenfizieren das du nicht irgendwelche punkte dazwischen hast. an einer bruch kante wäre da zb die differenz zwischen dem vorgänger klein und dem nachfolger groß oder je nach dem ob es ein maximum oder ein minimum ist negativ oder positiv.
kleiner tip: minima werden bei negation der werte zu maxima das kann manchmal helfen.
_________________
rauszufinden wie groß die diffenrenz zum nachbarn ist. damit kannst du vieleicht die randpunkte aufspüren. und dann dazwischen mit einem filter glätten oder auch mittels einer interpolation. man könnte da auch ein polynom dann reinlegen etc.
wichtig wäre wie gesagt erstmal die randpunkte genau zu idenfizieren das du nicht irgendwelche punkte dazwischen hast. an einer bruch kante wäre da zb die differenz zwischen dem vorgänger klein und dem nachfolger groß oder je nach dem ob es ein maximum oder ein minimum ist negativ oder positiv.
kleiner tip: minima werden bei negation der werte zu maxima das kann manchmal helfen.
das geht alles in die Richtige Richtung, danke. werde ich nach und nach ausprobieren was zum Erfolg führt. danke dafür.
mir geht es nicht darum das schön sauber darzustellen sieden genau um die Rand Punkte wenn ich die habe dann muss ich auch nichts mehr glätten
Denn ich benötige die Koordinaten Später
denn ich möchte das eine Fräße das teil nacharbeitet, jedoch ohne die Wölbung die das ganze teil hat also auf ein Flaches Stück Holz, dafür muss ich aber wissen welcher Fräskopf genommen werden muss (breite des Tales) und wie Tief der Fräskopf ins Holz hinein Fahren muss (Tiefe des Tales) dann ist natürlich noch wichtig wo das Tal ist als die Mitte des Tales ermitteln.
das mit den Glätten dachte ich nur das dann der Filter "findpeaks" nicht mehr so viel Punkte finden wird.
mit diff könnte ich aber schauen wie weit der Nächste Punkt weg ist und wenn der weiter all 3punkte weg ist dann merken sonst nächsten suchen.
kann man das "findpeaks" auch auf eine Matrix anwenden?
ich mache das ja immer nur für eine Linie gerade, das ist unheimlich schwer zu wissen die Linien vorne und dahinter ausschauen.
ich würde das gerne in der Darstellung vom "mesh" haben.
ist so was möglich?
so das er jede einzelne Linie durchgeht und dann die gefundenen Punkte mit hinein setzt?
dachte schon an eine For schleife oder so was.
und dann alle gefunden Punkte in eine Neue Matrix schreiben, die man dann wiederum drauf Plotten lassen könnte.
bin mir aber nicht sicher ob ich auf dem Richtigen weg bin
_________________
--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Einstellungen und Berechtigungen
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
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.