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

Rotierendes Bild einlesen und auf eine Position reduzieren

 

_Andreas_
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2013, 14:03     Titel: Rotierendes Bild einlesen und auf eine Position reduzieren
  Antworten mit Zitat      
Hallo liebe Kollegen,

ich bin noch ein ziemlicher Neuling im Gebiet Matlab und Bildverarbeitung, wurde aber schon auf ein, für meine Verhältnisse, großes Problem losgelassen:

Ziel
Es werden mittels Thermokamera bis zu n = 1000 Bilder eingelesen und in einem 120x160xn Array gespeichert. Nun soll die Abkühlung des Teiles gemessen werden, wobei mein Part dieses Projekts ist, dass ich die Bilder auf einen Punkt reduziere - heißt: Bild 1 wird als Standard genommen und alle anderen Bilder sollen dorthin zurück"transferiert" werden, dass sie genau übereinander liegen.

Frage
Ich habe es geschafft die Bilder einzulesen, kann sie rotieren lassen und übereinanderlegen, doch mein Problem liegt jetzt darin, dass ich sie um den richtigen Winkel µ rotieren lasse und sie perfekt übereinanderlegen kann ... Hoffe, dass mir da jemand Helfen kann :-/

Liebe Grüße
Andreas

EDIT
Ich habe mir nun überlegt, dass es vielleicht sinnvoll wäre, die vordere Kante (siehe Bild mit Kommentar) des jeweilgen Teiles als Gerade zu definieren und dann den Winkel zwischen dem ersten und dem zu überlagenden Teil zu messen - und die Differenz zu 180° müsste dann es zu überlagende Teil gedreht werden.

messung.jpg
 Beschreibung:
Die untere Kante würde ich als Gerade definieren!

Download
 Dateiname:  messung.jpg
 Dateigröße:  40.86 KB
 Heruntergeladen:  842 mal
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: 28.03.2013, 20:03     Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
  Antworten mit Zitat      
Hallo Andreas,

"Auf einen Punkt reduzieren" klingt verwirrend. Habe ich Dich richtig verstanden:
Du hast 1000 Bilder, die per Translation und/oder Rotation (Skalierung?) gegeneinander verschoben sind. Nun möchtest Du sie alle so übereinanderlegen, dass ein bestimmtes Feature (z.B. eine in allen Bildern vorhandene Linie) aneinander ausgerichtet sind.

Richtig?

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2013, 09:37     Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
  Antworten mit Zitat      
Hallo Jan,

danke schon mal für die schnelle Antwort! Möchte auf deine Fragen eingehen:

Jan S hat Folgendes geschrieben:
Du hast 1000 Bilder, die per Translation und/oder Rotation (Skalierung?) gegeneinander verschoben sind.


Ja das ist korrekt - die Teile bewegen sich in einer Kreisbahn unter der IR-Kamera hinweg.

Die Kamera an sich hat eine Auflösung von 160x120 [px]

Jan S hat Folgendes geschrieben:
Nun möchtest Du sie alle so übereinanderlegen, dass ein bestimmtes Feature (z.B. eine in allen Bildern vorhandene Linie) aneinander ausgerichtet sind.


Genau so sollte es eigentlich sein, denn die "ins Bild zeigende Achse" soll die Zeitachse sein; heißt, dass die Bilder direkt "untereinander" liegen sollen, damit man den Wärmeverlauf auswerten kann.
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: 29.03.2013, 13:59     Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
  Antworten mit Zitat      
Hallo Andreas,

Und hast Du schon eine Möglichkeit, diese Linie, die die Orientierung definiert, zu erkennen? Oder was ist genau der Schritt, an dem Du hängst?

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2013, 14:31     Titel:
  Antworten mit Zitat      
Also ich habe jetzt mittels dem Canny-Verfahren meine Linien zumindest genauer definiert. Was ich dabei aber nicht bedacht hatte, war, dass es auch sein könnte, dass nicht der komplette Körper erhitzt wird, de facto wäre der Übergang von Messteil zu Umgebung nicht gegeben --> das Canny-Verfahren würde fehlschlagen.

Was ich mir nun überlegt hatte, war, dass ich es folgendermaßen machen würde:

meiner Funktion werden die Geschwindigkeit v des Teiles, die Aufnahmefrequenz tstamp und das Movie mov(y,x,Bildnummer) übergeben:

Code:

%Berechnung der Winkelgeschwindigkeit

omega = v / r;

%Berechnung des Winkels
t = tstmp * Bildnummer;
phi = omega * t;
 


Somit hätte ich den Winkel phi und könnte das Bild mit "imrotate" in Position drehen - hoffe, dass ich das soweit richtig gemacht habe?

Falls ja, stehe ich vorm nächsten Problem: die Matrix hat sich durch das imrotate von 160x120 auf ~180x140 vergrößert, also könnte ich das Bild nicht mehr so einfach mittels x = r * cos(phi) und y = r * sin(phi) hinschieben ...
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.