|
|
Rotierendes Bild einlesen und auf eine Position reduzieren |
|
_Andreas_ |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 28.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.03.2013, 14:03
Titel: Rotierendes Bild einlesen und auf eine Position reduzieren
|
|
|
|
|
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.
Beschreibung: |
Die untere Kante würde ich als Gerade definieren! |
|
Download |
Dateiname: |
messung.jpg |
Dateigröße: |
40.86 KB |
Heruntergeladen: |
842 mal |
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 28.03.2013, 20:03
Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
|
|
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
|
|
|
_Andreas_ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 28.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.03.2013, 09:37
Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
|
|
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.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 29.03.2013, 13:59
Titel: Re: Rotierendes Bild einlesen und auf eine Position reduzier
|
|
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
|
|
|
_Andreas_ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 28.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.03.2013, 14:31
Titel:
|
|
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:
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 ...
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|