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

Speichern Markierter Snapshots

 

medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2016, 12:22     Titel: Speichern Markierter Snapshots
  Antworten mit Zitat      
Guten Tag miteinander,

ich versuche gerade einen Snapshot zu speichern, bei dem nachträglich mittels plot()
Noch eine farbige Markierung und ein Rechteck hinzugefügt wurde.
Bis jetzt kann ich nur den original snapshot speichern, bräuchte aber unbedingt die Version mit den Markierungen.

Jemand vlt. ne Idee?

Vg medtech
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.04.2016, 12:29     Titel:
  Antworten mit Zitat      
der befehl snapshot ist mir nicht geläufig wo ist der dokumentiert?
dein problem wäre einfacher zu verstehen wenn du ein minimalbeispiel posten würdest das das verhalten reproduziert und daran beschreibst was nicht so klappt wie du dir das vorstellst. sihe dazu auch den thread aus meiner signatur.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2016, 12:35     Titel:
  Antworten mit Zitat      
Ja da hast du wohl recht Wink

Also,

über die Funktion getsnapshot() hole ich mir in einem loop immer einen neuen Snapshot.
Dieser wird an weitere Funktionen übergeben und es werden Punkte in dem jeweilgen Snapshot berechnet.
Diese Punkte lasse ich bei jedem Frame neu farblich darstellen und den Snapshot würde ich auch gerne dann so markiert speichern, da ich manuell ggfs. Korrekturen der Punkte ausführen will.

Hier der Code:

Code:
for jjj = 1 : frames
   
   tic;
    %     get snapshot from video device
   
     snapshot = getsnapshot(vid);
     

    img_adjusted = imadjust(snapshot,stretchlim(snapshot),[]);
   
   
   
    [T] = getPoints(img_adjusted,caminfo);
   
   
    set(textleftphi,'string',num2str(update_left_phi()));
    set(textlefttheta,'string',num2str(update_left_theta()));
    set(textrightphi,'string',num2str(update_right_phi()));
    set(textrighttheta,'string',num2str(update_right_theta()));
    set(textblickleft,'string',num2str(update_sight_left()));
    set(textblickright,'string',num2str(update_sight_right()));
   
    %     displaying snapshot and found points; for display purpose only
   
    if T~=-1
       
       
        imshow(snapshot);
       
           
     
        hold on;
       
       
        for i=1:2:9
            plot(T(i),T(i+1),'ro');
            plot(T(i),T(i+1),'gx');

            rectangle('Position',getboundingboxright(caminfo),'EdgeColor','b',...
            'LineWidth',1)
             rectangle('Position',getboundingboxleft(caminfo),'EdgeColor','b',...
            'LineWidth',1)
            line([mean_left_x mean_left_x],[145 235],'LineWidth',1,'Color','r','LineWidth',1);%Linie linkes Auge | 160 235
            line([mean_right_x mean_right_x],[145 235],'LineWidth',1,'Color','r'),%Linie rechtes Auge | 160 235
            line([380 490],[mean_left_y mean_left_y],'LineWidth',1,'Color','r');%Linie horizontal links 565 690
            line([180 290],[mean_left_y mean_left_y],'LineWidth',1,'Color','r');%Linie horizontal  rechts 350 475
           
        end
       
        %speichere jeden snapshot zur Nachbearbeitung
        imwrite(snapshot,hilf2,'png');
       
       
    else
        imshow(snapshot);
    end
   
   
     
   
    pause(0.05);
    hold off;

edit winkow: bitte code umgebung benutzen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.04.2016, 12:58     Titel:
  Antworten mit Zitat      
du veränderst ja auch nicht snapshot sondern du plotest etwas in das axeshandle das von imshow erstellt wird. einfacher wäre es denke ich also wenn du dann das speichern würdest. ich würde also eine figure erstellen da drin alles machen und diese dann mit print nach deinen wünschen abspeichern
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2016, 13:03     Titel:
  Antworten mit Zitat      
Danke für die Antwort,
Ja sowas hatte ich auch schon im Kopf,
es ist aber so, dass ich eine GUI habe, in der das Anzeigefenster integriert ist.
Dazu habe ich in der Gui ein Achsensystem eingefügt und darin lass ich mir eben die snapshots plotten.
Wenn ich ne extra figure mach, dann wird die immer extern der GUI angezeigt oder?

Vg medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.04.2016, 14:10     Titel:
  Antworten mit Zitat      
ja. du musst es auch garnicht anzeigen lassen um es zu plotten. je nachdem was man möchte. wichtig ist aber halt du das neue plottest und nicht den unveränderten datensatz so wie du es bis jetzt machst. versuch doch erstmal ob es klappt und stell dann rückfragen wenn irgendwas nicht geht mit entsprechendem code etc Smile
vielleicht würde bei dir aber auch getframe funtionieren um das neue bild zu erhalten und dieses dann zu speichern.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2016, 08:25     Titel: Danke
  Antworten mit Zitat      
hab's mit getframe(gca) hinbekommen, danke.=)
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2016, 08:36     Titel:
  Antworten mit Zitat      
gca klappt zwar, kann aber zu problemen führen wenn das zufällig grade mal nicht das system ist was du brauchst. besser ist es gleich das axes handle das du bei der gui erstellung verwendest und auch benutzen solltest um anzugeben wo etwas hingemalt werden soll auch da verwendest. grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2016, 08:40     Titel:
  Antworten mit Zitat      
Ja das habe ich auch schon versucht, nur hatte ich da etwas Probleme.

Ich habe zu Beginn die Software geschrieben und im Nachhinein die GUI.
In der GUI rufe ich zum Start der Software einfach das initial .m file namentlich auf.
Jetzt hatte ich schon versucht bei diesem Start das Axes handle irgendwie mitzugeben, um es in meinem Hauptprogramm einfach ansprechen zu können, aber ich krieg immer nen Fehler von wegen er kennt das Handle nicht.

Weißt du was ich da machen muss?
Ich denke es sollte mit setappdata o.ä. eigentlich hinhauen.

VG medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2016, 09:42     Titel:
  Antworten mit Zitat      
Zitat:
Weißt du was ich da machen muss?


deine fehlerbeschreibung
Zitat:
aber ich krieg immer nen Fehler von wegen er kennt das Handle nicht.
ist dazu leider viel zu wage. woher soll ich wissen was du da machst wenn du es nicht als code postest? meine wahrsagerkugel ist in reperatur ^^
_________________

richtig Fragen
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.