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

png in figure einfügen und drehen

 

JaWi
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 10.08.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 09.09.2013, 14:16     Titel: png in figure einfügen und drehen
  Antworten mit Zitat      
Hallo,

wie in einem ähnlichen Thred möchte ich ein sich bewegendes Auto in meine GUI einfügen, das seine Position und seinen Winkel ändert. Der Hintergrund der GUI ist eine Landkarte.
Meine aktuelle Lösung ist:

Code:


%read png
Image = imread('Auto.png','BackgroundColor',get(GloVar.GH.figure1,'Color'));
       
% rotate icon
       rotImg=imrotate(Image,RefSignals.Yaw_angle_UTM(sign_1_counter),'loose');
ImSize2=size(rotImg);
       
% set axes for icon with position
ax=axes('Parent',GloVar.GH.figure1, 'Units','pixels', 'Position',[lft bttm ImSize2(2) ImSize2(1)]);

% show icon
 image(rotImg);
GloVar.icon(sign_1_counter) =imshow(rotImg);
         
axis off;
 


Da ich width und height der ax auf die Breite des gedrehten Bildes setze, ist ja ein "unerwünschter" einfarbiger Bereich zu sehen. Kann ich das irgenwie vermeiden? Am besten wäre es, das Bild ohne Drehung einzufügen und die komplette Axes zu drehen.
Es muss aber ein png/jpg sein, das sich bewegt, ich kann kein gezeichnetes Objekt verwenden.
Da der Hintergrund eine Landkarte ist, kann ich den Bereich um das icon auch nicht verschwinden lassen, indem ich es auf dieselbe Farbei wie die ersten axes setze.
Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


JaWi
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 10.08.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 17.09.2013, 13:49     Titel:
  Antworten mit Zitat      
So, endlich eine Lösung gefunden: Man kann über 'AlphaData' des png die Transparenz des Bildes steuern und die unerwünschten Farben heraussfiltern und unsichtbar machen

Code:


 % load icon
    Image = imread('Auto.png', 'BackgroundColor',get(GloVar.GH.figure1,'Color'));
    ImSize=size(Image);
 % rotate icon
        rotImg=imrotate(Image,Angle,'loose');
        ImSize2=size(rotImg);
       
        % set axes for icon with position
        ax=axes('Parent',GloVar.GH.figure1, 'Units','pixels', 'Position',[lft bttm ImSize2(2) ImSize2(1)]);
        % show icon
        GloVar.icon(sign_2_counter) =image(rotImg);
       
        % size of rotated image
        [M,N,O] = size(rotImg);
       
        % Assign A as ones (not transparent)
        alpha_matrix = ones(M,N);
        % Iterate through rotImg, to assign A
        for i=1:M
            for j=1:N
                if(rotImg(i,j) == 0)   % Assuming uint8, 0 would be black
                    alpha_matrix(i,j) =0;      % Assign 0 to transparent color(white)
                end
            end
        end
        % set pixels of rotImg with color black to transparent
        set(GloVar.icon(sign_2_counter),'AlphaData',alpha_matrix);
        axis off;


 
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.