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

Bild einlesen aus Datei

 

sibianu
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2010, 14:43     Titel: Bild einlesen aus Datei
  Antworten mit Zitat      
Hallo,

ich muss in Simulink einen Bildkompressions-Algorithmus implementieren. Ich habe schon im Matlab den Prädiktor geschrieben. Jetzt muss ich anfangen das mit Simulink zu testen. Da ich aber ein richtiger Anfänger bin bin ich kein Schritt weiter gekommen. Ich soll ja den Matlab-Code in einem Block implementieren. Das funktioniert wahrscheinlich mit dem Block "MCode" oder "Embedded MATLAB Function". Ich habe allerdings keine Ahnung wie ich die Matrix, also das eingelesene Bild aus der Datei, zur Verfügung stelle. Es gibt ja diesen "Video and Image Processing Blockset", der mir allerdings als Student nicht zur Verfügung steht. Es gibt aber angeblich noch andere Möglichkeiten einen Bild einzulesen, ich habe allerdings nichts gefunden. Suche schon seit Stunden im Internet. Sad
Kann mir jemand helfen, bin dankbar für jeden Tip.

danke im Voraus,
Sibianu
Private Nachricht senden Benutzer-Profile anzeigen


Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 27.10.2010, 09:09     Titel:
  Antworten mit Zitat      
Is schon eine Weile her, dass ich was mit Simulink angefertigt habe,
aber wahrscheinlich kann man es wie eine Variable in einem M-file laden
und dann in Simulink benutzen, sobald das Skript ausgeführt wurde.

Den Befehl dazu ist :

Variable=imread('meintestbild.format');
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 27.10.2010, 09:16     Titel:
  Antworten mit Zitat      
Zitat:
Es gibt ja diesen "Video and Image Processing Blockset", der mir allerdings als Student nicht zur Verfügung steht.


Warum?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sibianu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2010, 09:37     Titel:
  Antworten mit Zitat      
Ok, das habe ich mitlerweile hinbekommen mit dem Bild, allerdings kann ich das so nicht nutzen. Ich muss einen Modell für System-Generator erzeugen. Das Problem dabei ist, dass ich keine Variablen aus dem Workspace in diesen Modell benutzen darf. Ich muss alle Variablen über Inputs reinbringen. Ich habe es auch geschafft einen Bild als Signal über den Input zu laden, allerdings sende ich über diesen Sognal Pixel für Pixel und das dauert einfach zu lange. Wie kann man das Bild als ganzes übertragen über so einen Input? Ich bräuchte es halt als Matrix für meinen Algorithmus.

Warum dieser Library nicht in der Studenten-Lizenz verfügbar ist kann ich nicht sagen, ich müsste dafür 100 Euro zahlen. Das würde mir aber auch nichts bringen wenn ich für mich eine Lizenz besorge, weil diese Arbeit für die Uni gedacht ist und die anderen Mitarbeiter dann mein Modell gar nicht benutzen könnten.



Gruß,
Sibianu
Private Nachricht senden Benutzer-Profile anzeigen
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 28.10.2010, 10:26     Titel:
  Antworten mit Zitat      
Ich versteh dich nicht. Wenn man ein Bild mit imread lädt, ist es in Matrixform:

>> imread('testpic2.png')
ans =
0 255 255 255 255 255 255 79 79 79
255 0 255 255 255 255 255 79 79 79
255 255 0 255 255 255 255 79 79 79
255 255 255 0 255 255 255 255 255 255
255 255 255 255 0 255 255 255 255 255
255 255 255 255 255 0 255 255 255 255
207 207 143 143 79 79 0 255 255 255
207 207 143 143 79 79 255 0 255 255
207 207 143 143 79 79 255 255 0 255
207 207 143 143 79 79 255 255 255 0

In der Studentenversion ist doch immer Simulink dabei (dachte ich)?
Gib "ver" ein, dann siehst du was deine Version beinhaltet.

Gruß Achi
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sibianu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2010, 15:48     Titel:
  Antworten mit Zitat      
Natürlich ist Simulink dabei. Aber für Simulink gibt es verschiedene Pakete von Libraries. Den "Video and Image Processing Blockset" habe ich nicht.
Zweitens: mit Imread habe ich eine Datei in Matrixform im Workspace, das ist klar und das habe ich auch gemacht. In einem Modell für System-Generator kann ich aber nichts aus dem Workspace benutzen. Alles was ich benutzen will muss ich über einen Input-Block in dem Modell laden. Das kann ich z.B. machen wenn ich die Matrix in einem Signal umwandle und über einen Input-Block in dem Modell lade. Für den System-Generator Modell benutze ich nur reine Xilinx-Blöcke!
Es gibt aber die Möglichkeit einen z.B. 128x128-Signal zu basteln, so dass man das Bild auf einmal über den Input-Port sendet, das wird z.B. für Filme benutzt wenn man den Film als einzelne Bilder als Signal sendet.
Die zweite Möglichkeit wäre über den Input-Port alles gleich in einem Shared-Memory zu laden und von dort zu benutzen. Dafür müsste ich aber erst einen Hardware-basierten Modell generieren damit ich weiss welchen Shared-Memory ich zur Verfügung habe. Das habe ich leider bis jetzt noch nicht hinbekommen. Ausserdem müsste ich dann trotzdem das Bild Pixel für Pixel empfangen, hätte also dasselbe Problem.
Meine Frage ist also: Wie bekomme ich das Bild als Matrix über einen Input-Port und nicht Pixel für Pixel?

Danke im Voraus,
Constantin

PS: ich hoffe ich konnte das einigermassen besser erklären. Es kann auch sein, dass ich mich irre, da lasse ich mich auch gerne von etwas anderes belehren. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 29.10.2010, 08:03     Titel:
  Antworten mit Zitat      
Ich hab keine Ahnung wie das mit den Inputports geht und hab hier auch kein Simulink. ABER ich bin mir sicher man kann das Bild das Variable laden
bild=imread('testpic2.png')
und dann einen Simulinkblock diese Variable benutzen lassen!

Gruß Achi
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sibianu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2010, 13:24     Titel:
  Antworten mit Zitat      
Von einem normalen simulink-Block ja, aber bei System-Generator ist es ein bisschen anders. In einem reinen System-Generator modell kann ich das nicht, da müssen die Blöcke über einen In-Port reinkommen. Du musst dir diesen Modell als einen Gerät oder Chip vorstelen, da müssen die Daten irgendwo reinkommen. Das Gerät hat später keinen Workspace mehr.

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