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, horizontal Spiegeln und ausgeben !

 

kurbimitbart
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 01.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2016, 15:21     Titel: Bild einlesen, horizontal Spiegeln und ausgeben !
  Antworten mit Zitat      
Hi,
im Studium beschäftigen wir uns grade mit MATLab und haben eine Aufgabe gestellt bekommen, bei der wir eine PNG Datei einlesen sollen, dann über eine doppelte for-Schleife über die Größe der Bild-Matrix spiegeln und anschließend ausgeben.

An für sich nicht so schwer, nur will das bei mir einfach nicht funktionieren.
Jedes mal, wenn das gespiegelte Bild ausgeben werden soll, kommt einfach nur ein schwarzes Bild der selben Größe heraus.

Hier der Code:
Code:
function flip_image(BildName)

orginal_bild=imread(BildName);
[n,m]=size(orginal_bild);

leere_Matrix=uint8(zeros(n,m))
for (i=1:n)
    for (j=1:m)
        leere_Matrix(i,n+1-j) = orginal_bild(i,j);
    end
end
imshow(leere_Matrix)
end


Vielen Dank schon mal für die Hilfe !

PS: Ich bin noch relativ neu im MATLab Business, also entschuldigt bitte mein mögliches Unwissen/Unvermögen !
PPS: Ja, wir sollen das über eine leere Matrix machen.
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: 01.02.2016, 16:44     Titel: Re: Bild einlesen, horizontal Spiegeln und ausgeben !
  Antworten mit Zitat      
Hallo kurbimitbart,

Du kannst den debugger verwenden um zu beobachten was passiert.
Welchen Type hat die Vraible "original_bild"? Ist das ein Double mit Werten zwischen 0 und 1? Ist es ein 3D-Array? Denn in diesem Fall hast Du ein RGB-Image eingelesen.

Wenn das Bild nur eine 2D-Matrix ist, wie sollen dann die Farben definiert sein?
Siehe:
Code:
size(orginal_bild)
class(orginal_bild)


Die Ausgabe ist eine UINT8 Matrix. Wenn Du Doubles mit den Werten 0 bis 1 in ein UINT8 verwandeltst, sind alle Ergebnisse 0, bis auf die, bei denen der Input exakt 1.0 ist. Und dann wird bei der Ausgabe das Bild schwarz.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 01.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2016, 17:06     Titel:
  Antworten mit Zitat      
Hallo Jan,

im Anhang pack ich dir das "besagte" Bild mal rein.

Hab jetzt zumindest mal verstanden, was im Prinzip passiert und das ich das Bild mit UINT8 auf die gleiche Form bringen muss !
Wenn ich das Bild mit Befehl "Class" überprüfe, kommt auch ohne den Befehl UINT8 der Typ UINT8 raus !

Wenn ich die Matrix des Bildes ausgebe, bekomme ich Zahlen im Bereich von 0-3, obwohl doch nur 0 oder 1 ausgeben werden sollte (wg. UINT8) ?


LG

flip.png
 Beschreibung:
Zu spiegelndes Bild

Download
 Dateiname:  flip.png
 Dateigröße:  283 Bytes
 Heruntergeladen:  332 mal
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.