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

Matrix auf eingelesenes Bild legen

 

lksteam
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 12.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2007, 15:59     Titel: Matrix auf eingelesenes Bild legen
  Antworten mit Zitat      
Hallo alle zusammen,

ich bin relativ neu was Matlab angeht. Ich habe eine Frage zu Bildverarbeitung.

Und zwar möchte ich ein Bild einlesen, was ja nicht so das Problem darstellt.

Nun will ich über das Bild eine Matrix legen. Das Bildhat eine Auflösung von 576x768. Ich weiß jetzt, dass das Bild als Matrix 576x768 abgespeichert wird.

Wie kann ich jetzt eine Matrix über das Bild legen? Die Matrix soll nicht über das ganze Bild gehen.

Für Vorschläge wäre ich echt dankbar.

Aloha Rafael
Private Nachricht senden Benutzer-Profile anzeigen


jochma
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 79
Anmeldedatum: 25.10.07
Wohnort: Oberbayern
Version: Version 7.0.0 (R14)
     Beitrag Verfasst am: 12.12.2007, 17:44     Titel:
  Antworten mit Zitat      
Servus,

also nennen wir mal die Bildmatrix 'bild' und die Matrix, die darüber gelegt werden soll 'matrix', mit der Größe 5x5.

'bild' besitzt also 576 Zeilen (rows) und 768 Spalten (columns).

Diese Werte können z.B. folgendermaßen in Matlab als Variable gespeichert werden:
Code:

[r_bild, c_bild]=size(bild);
 


Will man beispielsweise die Werte der 'matrix' an einer bestimmten Stelle im Bild hinzuaddieren schreibt man:
Code:

bild(r1-2:r1+2,c1-2:c1+2)=bild(r1-2:r1+2,c1-2:c1+2)+matrix;
 

r1 und c1 beschreiben dabei die Stelle des mittlere Pixel (Reihe und Spalte) von 'bild', auf die 'matrix' aufgelegt werden soll.
z.B. bei Reihe r1=100 bis Spalte c1=100 bezieht man sich damit auf den Bereich von Reihe 98-102 bei Spalte 98-102.

Wenn nun die Matrix dynamisch über das Bild gelegt werden soll, d.h. es soll nacheinander das gesamte Bild abgerarbeitet werden, kann dies über 'for'-Schleifen geschehen, der Art:

Code:

for i=1:r-4; % über alle Reihen (außer den letzten 4 damit 'matrix' innerhalb 'bild' bleibt)
for j=1:c-4; % über alle Spalten (außer den letzten 4 damit 'matrix' innerhalb 'bild' bleibt)
% Berechnung zwischen 'bild' und 'matrix'
end
end
 


Wobei die Komplexität des Schleifeninhalts abhängig der Aufgabenstellung ist...
Soll nicht das gesamte Bild abgearbeitet werden, müssen die Grenzen des abzuarbeitenden Bereichs (d.h. die Laufindizes i und j) dementsprechend anders gestaltet werden:
also z.b. bei Grenzen von r1 bis r2 und c1 bis c2:
Code:

for i=r1:r2-4
for i=c1:c2-4
...
end
end
 



gruß,
jochma
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.