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

Selektives Auslesen von Werten einer Bild-Matrix

 

Matlab Voll Nobe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2015, 11:01     Titel: Selektives Auslesen von Werten einer Bild-Matrix
  Antworten mit Zitat      
Hallo,

ich bin nur ab und zu mal mit Matlab in Kontakt gekommen und nun stehe ich vor folgendem Problem:

Ich habe hunderte (n) Bilder einer Infrarot-Kamera (Bildsequenz)
Meine über Matlab eingelesenen Daten (in Kelvin) erhalte ich am Ende in (n) Matrices.

640x480 Pixel/Matrix. Nun möchte ich symetrisch angeordnet aber nur bestimmte ausschnitte des Bildes verwenden (am Besten Kreise), in der Bildsequenz kommt es zu keiner Verschiebung, sprich die Kreisausschnitte würde für alle n Bilder an gleichen Position sein.

Mir fehlen da die Schlagwörter um ähnliche Skripte zu finden, hat jemand eine Idee wie man soetwas am geschicktesten angeht ? Oder einen Code vorschlag ?

Vielen Dank für eure Vorschläge


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.03.2015, 16:05     Titel: Re: Selektives Auslesen von Werten einer Bild-Matrix
  Antworten mit Zitat      
Hallo Matlab Voll Nobe,

In welchem Format liegen die Bilder in Matlab vor? Ein 3D-Array, oder ein CELL mit Matritzen?

Zitat:
Nun möchte ich symetrisch angeordnet aber nur bestimmte ausschnitte des Bildes verwenden (am Besten Kreise),

Was heißt genau "verwenden"? Was ist "symmetrisch angeordnet"?

Ein mögliches Stichwort ist "MASK".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Voll Nobe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2015, 11:34     Titel:
  Antworten mit Zitat      
Hallo,

schon mal Danke für die schnelle Antwort.

Also die Daten kommen als Array raus.

Also die symmetische Anordnung bedeutet, das ich eine viereckige Platte habe und über diese Platte 96 Messfelder liegen, die alle gleich groß und gleichweit von einander entfernt sind. Die Messfelder sind alle Kreisförmig (bzw. ein Vieleck), den Durchmesser kann ich in Pixel bestimmen, sowie den Abstand zu einander zueinander.

Jetzt hätte ich gerne, dass mir für jedes "Bild" Matlab mir diese 96-Felder extrahiert, den Mittelwert je Messfeld zurück gibt. Und das ganze dann für jedes Aufgenommene Bild. Am Ende sollen die Mittelwerte pro Feld eine Zeitreihe ergeben.

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  162.06 KB
 Heruntergeladen:  471 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.03.2015, 13:23     Titel:
  Antworten mit Zitat      
Hallo Matlab Voll Nobe,

Zitat:
Also die Daten kommen als Array raus.

Alle Matlab-Daten-Typen werden als "Array" bezeichnet. Welche Class und welche Size haben die Daten?

Bist Du mit der Suche nach "Matlab mask image" schon weiter gekommen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Voll Nobe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2015, 14:48     Titel:
  Antworten mit Zitat      
Mit der Suche bin ich noch nicht viel weiter gekommen.
Bin nur über die Funktion gestolpert poly2mask
(http://matlab.izmiran.ru/help/toolbox/images/poly2mask.html)
bzw. roipoly (http://de.mathworks.com/help/images/ref/roipoly.html)
Wobei roipoly danach aussieht als würde man per Hand definieren wo die polygonale region liegt.


Also therm ist meine Variable wo alles drinn ist.

Meinst du mit Array typ das, oder wie der Array Aufgebaut ist: ?

>> ischar therm

ans = 1



--> character array ?




size sollte die Anzahl der Pixel sein ? 640*480 ?

Werte Pro Pixel.JPG
 Beschreibung:

Download
 Dateiname:  Werte Pro Pixel.JPG
 Dateigröße:  211.89 KB
 Heruntergeladen:  488 mal
Unbenannt.PNG
 Beschreibung:
Beispiel Bild zu Beispiel Matrix

Download
 Dateiname:  Unbenannt.PNG
 Dateigröße:  204.9 KB
 Heruntergeladen:  560 mal
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 26.03.2015, 16:01     Titel:
  Antworten mit Zitat      
Moin,

die einfachste Version wäre doch, das Array in gleichgroße Ausschnitte aufzuteilen, Beginnend oben links, wie z.B.

Code:
a=I(1:3,1:3)
b=I(1:3,4:7) %usw


Oder was passt daran nicht?

Grüße - Hubertus
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: 26.03.2015, 23:33     Titel:
  Antworten mit Zitat      
Hallo Matlab Voll Nobe,

Ich meine diesen Satz:
Zitat:
Meine über Matlab eingelesenen Daten (in Kelvin) erhalte ich am Ende in (n) Matrices.

Das Format, in dem die Input-Daten vorliegen, ist der Ausgangspunkt für eine Problem-Lösung. Diese n Matritzen müssen ja irgendwie in Matlab vorliegen, vielleicht in einem CELL-Array, oder in einem 3D-Array vom Typ UINT8. Dass es ein CHAR ist, halt ich für unwahrscheinlich.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Voll Nobe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2015, 11:10     Titel:
  Antworten mit Zitat      
Hallo,

prinzipiell kann ich doch aber schon mit -ischar feststellen ob mein Array ein CHAR ist ? und ob es ein CELL Aray ist kann ich doch testen mit -iscellstr ?

Dann kommt aber raus ans=0 für iscellstr und für ischar ans=1

Viele Grüße
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.03.2015, 21:58     Titel:
  Antworten mit Zitat      
Hallo Matlab Voll Nobe,

Mit ISCELL stellt man fest, ob eine Variable den Type CELL hat. ISCELLSTR bedeutet darüber hinaus, dass die Elemente des CELLs Strings (also CHAR-Vektoren) sind.

"therm" ist also ein CHAR, aber welchen Inhalt hat diese Variable denn? Das könnte der File-Name sein, aber ich kann mir kaum vorstellen, dass der Inhalt der Bilder darin gespeichert ist. Es wäre zumindest sehr unpraktisch, Bilder als CHAR-Vektoren zu speichern.

Verstehst Du das Problem? Es ist noch nicht klar beschrieben, was diese Sätze bedeuten:
Zitat:
Ich habe hunderte (n) Bilder einer Infrarot-Kamera (Bildsequenz)
Meine über Matlab eingelesenen Daten (in Kelvin) erhalte ich am Ende in (n) Matrices.

Du hast n Matrizen - aber in welcher Form? Stehen die wirklich in "therm" drin?

Bisher muss man noch zu viel erraten für ein hilfreiche Antwort. Versuche nochmal das Problem zu beschreiben. Die Bedeutung der Zahlen, z.B. ob das Kelvin oder Dollar sind, spielt keine Rolle.

Gruß, Jan
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 - 2025 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.