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 machen und als png-Bild und mat-Datei speichern

 

matlab10
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2013, 19:19     Titel: Bild machen und als png-Bild und mat-Datei speichern
  Antworten mit Zitat      
Hallo Leute, mein Matlab-Code sieht folgendermaßen aus:

Code:
function data = aufnahme_neu(i)

vid = videoinput('winvideo', 1);
src = getselectedsource(vid);


vid.FramesPerTrigger = 1;
vid.ROIPosition = [320 240 640 480];

set(vid, 'ReturnedColorSpace', 'grayscale'); % graues Bild

preview(vid);       % Livebild

pause;

start(vid); % Foto machen
 
% Speichern von Bild
data = getdata(vid);    
imwrite(data, 'test01.png');    
save('bild.mat', 'data');

closepreview;   %Videofenster schließen

end
 

Ich muss diesen Code so ausbauen, dass ich nach jedem Aufruf (oder auch nach 1 mal Ausführen) dieser Funktion, immer 1 Bild als PNG-Datei (im Ordner) und MAT-Datei (im Workspace) habe. Diese sollten aber auch natürlich geordnet werden, wie z.b. pic_1.png, pic_2.png, etc. bzw. (im Workspace:) pic_1.mat, pic_2.mat, etc. Für jede Hilfe bin ich Dankbar.


edit by denny: bitte die Codeumgebung benutzen. Danke!
Private Nachricht senden Benutzer-Profile anzeigen


BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 12.12.2013, 09:59     Titel:
  Antworten mit Zitat      
Hallo,

du hast zwar gesagt, was du gern möchtest, aber nicht woran es scheitert?
Du kannst z.B. die existierenden Dateien checken und entsprechend dann die Namen gestalten. Dazu kannst du "dir",evtl. "regexp" verwenden.

Grüße
Chris
p.s.: das nächste mal bitte die Code-Umgebung benutzen, das macht Posts übersichtlicher Wink
_________________

--> Kapieren statt Kopieren <---
____________________________________________________
FAQs sind dazu da, FAQs zu beantworten Wink
Richtig fragen!
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab10
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2013, 11:20     Titel:
  Antworten mit Zitat      
Also diese png-Dateien (Bilder) habe ich jetzt hinbekommen, mit If-Anweisungen. Ich bekomme also pic_1.png,pic_2.png,usw... Ich weiss nur nicht, wie ich diese png-Dateien als ".mat"- Dateien, nachdem das jeweilige Bild gemacht worden ist, auch noch in workspace speichern soll? Vorschläge?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 12.12.2013, 11:28     Titel:
  Antworten mit Zitat      
Hallo

Für mich ist das nicht ganz klar, was du hier unter Speichern der MAT-Datei (im Workspace) meinst?

das
Code:

pic_1= data;
 


oder das?
Code:

save('pic_1.mat', 'data');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab10
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2013, 02:13     Titel:
  Antworten mit Zitat      
Das mit 'save' aber es muss halt durch nummeriert werden..
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.12.2013, 07:06     Titel:
  Antworten mit Zitat      
Hallo,

Hilft dir das weiter?
Code:
for ii = 1:anzahl
    name = ['pic_', num2str(ii), '.mat'];
    save(name, 'data');
end


Grüße
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab10
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2013, 10:54     Titel:
  Antworten mit Zitat      
Vielen Dank. Es läuft, aber ich habe noch eine Frage. Also, wenn ich das Programm laufen lasse, dann klappt es mit einmal '.mat' und einmal '.png' Datei. Mit dieser Schleiche von dir Seban, klappt es sehr gut, was ich eigentlich auch herausgefunden hatte Very Happy, aber es hatte mir nicht gefallen, da jedes Bild unter dem Namen 'data' abgespeichert wird, oder versteh ich das falsch? ich bekomm z.B. ein pic_1.png und gleichzeitig ein pic_1.mat. Und in dieser pic_1.mat sind dann 2 weitere Matrizen und eins davon ist 'data' und da ist das Bild. Jedesmal, wenn ich das Programm ausführe, speichert er in den jeweiligen pic_(ii).mat-Datei mit dem Namen 'data' ab. Ich muss es iwie umschreiben, dass ich meine 'data' hochzähle und alle dieser Bilder unter einem Namen, z.B. pictures.mat gespeichert werden soll?
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.12.2013, 20:32     Titel:
  Antworten mit Zitat      
Gib bitte Beispieldaten für data (bzw für alles was du Speichern möchtest) an, dann kann man dir besser helfen.

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab10
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2013, 22:15     Titel:
  Antworten mit Zitat      
Ok also wir speichern das Bild als png und mat ne. Also sieht das so aus: b1.png, b2.png,... (Das ist klar!) Diese Bilder
müssen auch als mat-Dateien abgespeichert werden und das sollte so aussehen: wir speichern all diese Bilder in ein mat-Datei, z.b. "Data" und in dieser Datei sollen die Bilder als mat-datei sein, sprich b1.mat,b2.mat,...
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 14.12.2013, 05:47     Titel:
  Antworten mit Zitat      
matlab10 hat Folgendes geschrieben:
wir speichern all diese Bilder in ein mat-Datei, z.b. "Data" und in dieser Datei sollen die Bilder als mat-datei sein, sprich b1.mat,b2.mat,...

Willst du mat-Files in mat-Files speichern? Glaub nicht, dass das geht.

Du kannst ein mat-File erstellen und in dieses bei jdem Aufruf deiner Funktion eine Variable hinzufügen, die die Daten deines Bildes beinhaltet und einen entsprechenden Namen erhält.
http://www.mathworks.de/de/help/matlab/ref/matfile.html
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab10
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2013, 16:29     Titel:
  Antworten mit Zitat      
Also ich bekomme es iwie nicht hin... Ich kann nicht jedes gemachte bild im workspace nacheinander als MAT-Datei abspeichern. Bitte dringend um hilfe.

Auf der rechten Seite in Matlab ist ja dieser Workspace Bereich. Da müssen die Bilder als

pic_1.mat
pic_2.mat
pic_3.mat
usw.

aufgelistet werden. Ist das machbar ?

Ich habe soviel im Moment:

Code:

sz=1;
    for sz=1:100
        sz = sz;
        if exist(['bild',num2str(sz),'.png'])
           sz = sz+1;
        else
           sz = sz;
           break;
        end
    end

    imwrite(data,['bild',num2str(sz),'.png']);

    name = ['bild', num2str(sz), '.mat'];

    save(name, 'data');
 


Das Programm speichert die Bilder als PNG-Datei und als MAT-Datei, allerdings sind die Bildmatrizen in data abgespeichert, diese sich in den jeweiligen MAT-Datei befindet. Kann man das so ändern, dass ich diese ganzen Bilder ohne Eingabe von Tastatur die Bilder nacheinander als Matrizen in workspace auflisten kann ? (siehe oben)
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.