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

HD Grafik wird fehlerhaft angezeigt

 

confuso
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 12.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2011, 14:20     Titel: HD Grafik wird fehlerhaft angezeigt
  Antworten mit Zitat      
Hallo,
ich möchte mit Matlab eine Bilddatei in Fullhd öffnen. Beim anzeigen hat diese Grafik jedoch Fehler, egal ob ich sie mit imshow, imagesc oder image darstelle. Habe es sowohl auf meinem Mac als auch auf einem Windowsrechner ausprobiert, beides mal der gleiche Fehler. Der Fehler tritt auch bei verschiedenen Dateiformaten auf, habe png und bmp ausprobiert. Die bmp Datei ist dabei einfach ein 8Bit Graustufen Bild. Hab die beiden Grafiken mal in den Anhang gehängt.

Ist das Problem bekannt und gibts einen Bugfix?

mfg

vorher.png
 Beschreibung:
Originalbild

Download
 Dateiname:  vorher.png
 Dateigröße:  11.03 KB
 Heruntergeladen:  379 mal
nachher.png
 Beschreibung:
Bild durch Matlab angezeigt. Auch beim ranzoomen ist der Fehler vorhanden

Download
 Dateiname:  nachher.png
 Dateigröße:  6.45 KB
 Heruntergeladen:  342 mal
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.05.2011, 14:45     Titel:
  Antworten mit Zitat      
Hallo

Wie hast du es eingelesen?
Bei mir funktioniert folgendes:

Code:

[X,map]= imread('vorher.png')
imshow(X,map)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
confuso
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 12.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2011, 15:05     Titel:
  Antworten mit Zitat      
Ah, habs ohne map eingelesen, jetzt funktionierts! Wunderbar, danke.

Direkt ne schnelle Frage hinterher...

ich erstelle mit figure() eine Grafik,
dann lasse ich eine for-Schleife durchlaufen, bei der bei jedem durchgang mit imshow ein neues Bild dargestellt werden soll.
Hier mal der Code:

Code:

        f1= figure();
        imshow(Image);  

        set(f1, 'position', [1, 1, 1920, 1080],...
        'IntegerHandle','off',...
        'MenuBar','none',...
        'ToolBar','none',...
        'Renderer','OpenGL',...
        'DoubleBuffer','on',...
        'OuterPosition', [1, 1, 1920, 1080]);

         for j=1:100
             [I,map] = imread(fullfile('images/',...
                 [int2str(j) '.bmp']));      

             imshow(I,map,'border','tight');
             drawnow;    
         end
 


Beim erstellen der figure wird mir die erste Grafik auch im Vollbild angezeigt. Beim laden der Bilder in der Schleife wird das Bild aber wieder autoskaliert... hab schon alles möglcihe ausprobiert , habe keine Ahnung wie ich das autoscaling verhindern kann...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.05.2011, 16:30     Titel:
  Antworten mit Zitat      
Hallo confuso,
Code:

        f1= figure( 'position', [1, 1, 1920, 1080],...
        'IntegerHandle','off',...
        'MenuBar','none',...
        'ToolBar','none',...
        'Renderer','OpenGL',...
        'DoubleBuffer','on');
        % Nein! 'OuterPosition', [1, 1, 1920, 1080]
        AxesH = axes('Units', 'normalized', 'Position', [0, 0, 1, 1], ...
                               'NextPlot', 'add');
        ImageH = imshow(Image, 'Parent', AxesH);  

         for j=1:100
             [I,map] = imread(fullfile('images/',...
                 [int2str(j) '.bmp']));      
             set(ImageH, 'CData', ind2rgb(I, map));
             drawnow;    
         end
 

Vielleicht hilft das. Statt immer ein neues Image-Objekt zu zeichnen, ist es viel schneller einfach die dargestellten Werte des existierenden Image-Objekts zu ändern.

Du kannst übrigens nicht gleichzieitig die Position und OuterPosition einer Figure festlegen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
confuso
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 12.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2011, 17:14     Titel:
  Antworten mit Zitat      
Hallo Jan,
danke , dass sieht schon sehr vielversprechend aus! Das Fenster ist im Vollbild und die Grafik wird richtig angezeigt... Leider ist aber immer noch dieser dicke Rahmen um das Bild herum...

hab noch die 'Box' auf off gestellt, aber leider ohne Erfolg. Außerdem hab ich ein bisschen mit der Position gespielt:

Code:

AxesH = axes('Units', 'normalized', 'Position', [-0.04, -0.15, 1.14, 1.3], ...
                               'NextPlot', 'add','Box','off');
 


allerdings finde ich das sehr unschön, da ich das jetzt Pi*Daumen angepasst habe. Schöner wäre es, den Rand komplett zu deaktivieren.. Hast du da zufällig auch noch einen Tipp für ? Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.05.2011, 18:15     Titel:
  Antworten mit Zitat      
Hallo

das liegt mehr am IMSHOW, diese Funktion verändert Axes Einstellungen
IMAGESC stattdessen nutzen, AXES entsprechend vorbereiten und mit IMAGESC darstellen
Private Nachricht senden Benutzer-Profile anzeigen
 
confuso
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 12.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2011, 18:43     Titel:
  Antworten mit Zitat      
ah super, jetzt funktionierts... muss zwar das Bild immer noch etwas hochskalieren, warum auch immer, aber ich glaub damit kann ich leben Wink

Danke!
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.