Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB und Simulink in der Ingenieurpraxis

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Pre- und Post Oberfläche übereinander legen und ausrichten

 

fun123abc
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2020, 09:23     Titel: Pre- und Post Oberfläche übereinander legen und ausrichten
  Antworten mit Zitat      
Hallo zusammen,

ich stehe aktuell vor einem kleinen Problem und hoffe, dass mir jemand helfen kann.

Ich habe in eine Oberfläche vier Eindrücke (Indents) in Form eines Rechtecks gesetzt und die Oberfläche anschließend gescannt (Prescan). Daraufhin habe ich die Oberfäche zwischen den vier Eindrücken verschlissen und anschließend erneut gescannt (Postscan).

Nun würde ich gerne den Prescan von dem Postscan abziehen und dafür die vier Eindrücke genau aufeinanderlegen. Vielleicht kann mir also jemand von euch sagen, wie ich Matlab sagen kann, dass es die vier Eindrücke von beiden Scans genau übereinanderlegt (aneinander ausrichtet), so dass ich anschließend beide Scans voneinander abziehen kann und ein "Verschleißvolumen" erhalte.

EDIT: Was vielleicht helfen könnte: Die vier Eindrücke sind die tiefsten Punkte der Oberfläche, d.h. man könnte Matlab eventuell sagen, dass es den tiefsten Punkt von der Preoberfläche, an dem tiefsten Punkt der Postoberfläche orientieren soll und das gleiche für die anderen Eindrücke auch. Allerdings stehe ich da auf dem Schlauch wie ich das Matlab mitteile. Das ganze müsste ja in der Form sein wie: Suche tiefsten Punkt Pre und richte ihn an tiefsten Punkt Post aus, dann suche zweittiefsten Punkt Pre usw...

Ich weiß bereits, wie ich mir die Oberflächen mit surf anzeigen lassen kann und auch wie ich es schaffe, beide übereinander zu legen mit "hold". Allerdings stehe ich beim genauen Ausrichten an den vier Punkten auf dem Schlauch.

Vielen Dank für eure Hilfe!

Beste Grüße
Lukas
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 21.850
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2020, 09:40     Titel:
  Antworten mit Zitat      
Hallo,

das klingt für mich nach Image Registration, eventuell Control Point Mapping.
https://www.mathworks.com/help/images/image-registration.html

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fun123abc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2020, 17:11     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die schnelle Antwort. Ich habe mich in den letzten Stunden ein wenig in die Image Registration und das Control Point Mapping eingelesen und ausprobiert.

Leider ist es mir bisher nicht gelungen, die Daten sinnvoll übereinanderzulegen und anschließend Prescan von Postscan zu subtrahieren.

Bei der Image Registration habe ich probiert die Daten über Load File einzuladen, das sieht auch im ersten Moment sehr gut aus. Allerdings findet er dort anscheinend keine Übereinstimmungen (Detected 0 and 0, Matched: 0) und daher kann ich kein Register Images anwenden.

Das Control Point Mapping ist mir bisher nur für 2D Bilder gelungen. Ich benötige allerdings nach dem Übereinanderlegen und anschließendem Subtrahieren von Pre und Postscan ein 3D Bild der verschlissenen Fläche.

hast du eventuell noch eine Idee, die mich weiterbringen könnte?


Beste Grüße
Lukas
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.850
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2020, 22:07     Titel:
  Antworten mit Zitat      
Hallo,

leider nicht meine Domäne.
Ich weiß nicht, ob sich hier derzeit jemand aufhält, der sich mit Bildverarbeitung auskennt. Eine Alternative kann MATLAB Answers sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fun123abc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2020, 23:53     Titel:
  Antworten mit Zitat      
Hallo,

ich bin mittlerweile schon einige Schritte weiter. Habe es ohne die Bildverarbeitung probiert.

Ich habe mir die Koordinaten der tiefsten Stellen beider Scans anzeigen lassen und den Offset berechnet.

Im letzten Schritt hänge ich nun aber wieder. Ich habe jeweils 65536 (256x256) z-Koordinaten und mittels surf hat mir Matlab einen 3D Plot der Oberflächen für beide Scans daraus gemacht mit X-und Y Koordinaten von 1-256.
Ich weiß, dass der Offset zwischen Post- und Prescan genau Y=-1 und X=0 beträgt. Nun müsste ich also alle Z-Werte des Postscans nurnoch um Y=-1 verschieben und hätte meine Lösung.
Hat jemand eine Ahnung, wie ich das machen kann?
Ich habe bereits probiert einfach den ersten Spalte und Zeile der Postmatrix zu löschen, in der Hoffnung alles verschiebt sich in die richtige RIchtung. ALlerdings kann ich beide Scans dann ja nicht mehr voneinander abziehen, da beide eine andere Größe haben. (Pre 256x256 und Post 255x255)

Gruß
Lukas
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.850
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2020, 08:50     Titel:
  Antworten mit Zitat      
Hallo,

bei X=0 gibt es doch nichts zu entfernen?

Wenn du von einer Matrix die erste Zeile entfernst, dann würde ich von der anderen die letzte Zeile entfernen. Somit bleibt der Teil, wo du von beiden Scans Daten hast. Entsprechend für Spalten.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fun123abc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2020, 21:41     Titel:
  Antworten mit Zitat      
Vielen Dank, es hat tatsächlich geklappt. Über folgenden Code kann ich es steuern:

Code:

POST(256,:)=[]  %lösche i-te Zeile der Matrix POST
%POST(:,256)=[] %lösche j-te Spalte der Matrix POST
%PRE(1,:)=[] %löscht i-te Zeile der Matrix PRE
%PRE(:,1)=[] %lösche j-te Spalte der Matrix PRE
 



Ich habe gerade probiert den Mittelwert der Rauhigkeit im verschlissenen Feld zu berechnen und bin dabei wie folgt vorgegangen:

Code:
Mittelwert = mean(A, 'all');


Wenn ich es richtig verstanden habe, habe ich damit aber nun den Mittelwert der gesamten Fläche berechnet. Gibt es eine Möglichkeit, diesen lediglich für einen Teil der Oberfläche zu berechnen? Ich bentöige diesen ja nur für das Rechteck in der Mitte.

Ich habe folgendes probiert, bekomme allerdings eine Fehlermeldung:

Code:
Mittelwert = mean(75:175, 75:175, A);


Ich wollte damit versuchen den Mittelwert genau im Bereich 75 bis 175 der X-und Y Koordinaten zu brechnen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.850
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2020, 21:43     Titel:
  Antworten mit Zitat      
Hallo,

eher so:
Code:
Mittelwert = mean(A(75:175, 75:175));


Zitat:
bekomme allerdings eine Fehlermeldung:

nächstes Mal bitte auch dazu schreiben, welche Fehlermeldung du bekommst.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fun123abc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2020, 21:57     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

eher so:
Code:
Mittelwert = mean(A(75:175, 75:175));


Zitat:
bekomme allerdings eine Fehlermeldung:

nächstes Mal bitte auch dazu schreiben, welche Fehlermeldung du bekommst.

Grüße,
Harald


Guten Abend,

mit dem Code

Code:
Mittelwert = mean(A(75:175, 75:175));


erhalte ich einen Vektor der Größe 1x101. Allerdings suche ist ja nur den einen Mittelwert des gesamten Rechtecks. Ich könnte nun den Mittelwert von diesem Vektor bilden, ich bin mir allerrdings nicht sicher ob das zielführend ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.850
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2020, 22:09     Titel:
  Antworten mit Zitat      
Hallo,

du könntest das machen oder es mit deinem vorherigen Versuch kombinieren:
Code:
Mittelwert = mean(A(75:175, 75:175), 'all');


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fun123abc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2020, 22:14     Titel:
  Antworten mit Zitat      
Ah stimmt, das klappt super und scheint am einfachsten zu sein!
Vielen Dank für deine super Hilfe.
Habe den Beitrag auf beantwortet gesetzt
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.