|
|
imread funktioniert komisch |
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 09:42
Titel: imread funktioniert komisch
|
 |
Hallihallo zusammen,
ich versuche gerade, ein Windows bmp in Matlab zu verarbeiten. Das Bild hat 100x100 Pixel und ist 1 bit tief, also nur schwarz/weiss.
Dabei stelle ich fest, dass sich imread merkwürdig verhält.
Lese ich ein komplett schwarzes Bild ein, so sind alle Pixel auf 0 gesetzt. Lese ich ein komplett weisses Bild ein, so sind alle Pixel auf 1 gesetzt.
Lese ich jedoch ein Bild ein, das bis auf einen schmalen schwarzen Streifen an der oberen Bildkante weiss ist ein, so sind die schwarzen Pixel auf 1 gesetzt und der Rest auf 0, also genau verkehrt herum...
Imshow zeigt das richtige Bild an...
Was ist da los? Warum drehen die Pixelwerte für schwarz/weiss plötzlich? Passiert auch bei anderen Bildern..???
Herzlichen Gruss und vielen Dank
Mario
|
|
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 10:49
Titel:
|
 |
Hallo erstmal,
irgendetwas scheint nicht zu stimmen mit Deinem Bild. Durch den Befehl "imread" erhalte ich Werte zwischen 0 und 255. Auch durch wandeln erhalte ich die richtigen Werte zwischen 0 und 1. Mit welchem Programm kann man Bilder in 1 bit tiefe speichern - ich denke, dass alle Bildprogramme zumindest 8 bit speichern?
Viele Grüße
Hubertus
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 11:19
Titel:
|
 |
Hallo,
habe mit Paint gleichen monochromen Bild-Mustern erzeugt. Mit imread eingelesen, keine Verwechslung.
Weiß ist immer 1
Schwarz hat immer 0
also bist du sicher, dass die Verwechslung stattfindet ???
Welche Matlab Version verwendest du?
Hänge deine Bilder doch hier rein!
@Hubertus
Mit Paint kannst du Bilder monochrom abspeichern, das entspricht 1 Bit-Tiefe
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 11:47
Titel:
|
 |
Hallo zusammen,
hab die Bilder mit Gimp gespeichert, (Modus:indiziert, schwarz/weiss(1bit))
Im Anhang mal ein Bildchen.
Und wenn ich das in Matlab einlese, sind die weissen Pixel auf 0 und die schwarzen auf 1...??
Also A=imread('topbar','bmp');
A(1,1) = 1
A(100,100) = 0
....Gruss
Mario
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 11:48
Titel:
|
 |
Argh, bmp als Anhang nicht erlaubt
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 11:50
Titel:
|
 |
Noch was: habs gerade mit Paint noch als Monochrom gespeichert - kein Unterschied.
Gruss
Mario
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 11:57
Titel:
|
 |
So, hier das Ganze mal dokumentiert
Im Anhang 3 Fotos: weiss, schwarz und topbar.
Sowie ein Screenshot von Matlab.
Zuerst das schwarze Bild. Alle Werte in der Matrix = 0, wie zu erwarten.
Dann das weisse Bild. Alle Werte = 1, wie zu erwarten.
Dann das topbar-Bild mit schwarz und weiss. Die oberen Werte (A(1,1)) sind jetzt = 1, obwohl sie schwarz sind, und die unteren Werte (A(50,50)) sind = 0, obwohl sie weiss sind....
Das dürfte doch nicht sein??
Gruss
Mario
Beschreibung: |
|
 Download |
Dateiname: |
Screenshot.jpeg |
Dateigröße: |
29.94 KB |
Heruntergeladen: |
561 mal |
Beschreibung: |
Das merkwürdige Bild. Bei mir ein .bmp |
|
 Download |
Dateiname: |
topbar.jpeg |
Dateigröße: |
573 Bytes |
Heruntergeladen: |
546 mal |
Beschreibung: |
Das weisse Bild. Bei mir ein .bmp |
|
 Download |
Dateiname: |
weiss.jpeg |
Dateigröße: |
357 Bytes |
Heruntergeladen: |
574 mal |
Beschreibung: |
Das schwarze Bild. Bei mir ein .bmp |
|
 Download |
Dateiname: |
schwarz.jpeg |
Dateigröße: |
357 Bytes |
Heruntergeladen: |
553 mal |
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 12:30
Titel:
|
 |
Hallo nochmal,
ich kann im Moment Deine Beipiele nicht laden, aber ein vergleichbares Muster mit Paint erstelllt (Danke für den Hinweis denny) zeigt keine Probleme. Ich habe auch manchmal (selten) "unerklärliche Phänome" und lösche dann den Inhalt des Verzeichnisses >> prefdir ( vorher die Dateien sichern!!!). Bisher habe ich damit alle Phantome beseitigen können.
Viel Glück
Hubertus
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 13:10
Titel:
|
 |
Hallo,
auf Screenshot sehe ich dass du mindestens Matlab R2009B verwendest,
an der kann es wohl nicht liegen. Weil bei mir, in 2009b treten solche Effekte nicht auf.
vielleicht hat Hubertus recht, und existiert irgendwo in SearchPath Datei mit gleichem Namen
schaue mal mit which, ob der Pfad zu diesem Bild stimmt.
versuche kompletten Pfad an imread zu übergeben
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 13:18
Titel:
|
 |
Huhu,
Danke für die Tipps.
Habe nun das Ganze mit which gemacht und bei imread den gesamten Dateipfad angegeben - keine Änderung. Die schwarzen Pixel sind immernoch auf "1".
Im Anhang mal ein Zip-File mit den Bildern drin.
Matlab ist 7.8.0 (R2009a)
Im Zip hats auch ein Bild "tophalf" - da stimmt es wieder mit den Pixeln - schwarz = 0, weiss = 1... aber in topbar wirds dann wieder umgekehrt :-/
Gruss und Danke
Mario
Beschreibung: |
Ein Zip mit 4 Bitmap-Bildern |
|
 Download |
Dateiname: |
Matlab-Problem.zip |
Dateigröße: |
639 Bytes |
Heruntergeladen: |
409 mal |
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 13:40
Titel:
|
 |
OK; Problem gelöst. Auf einer 2010a-Version läuft es wie es soll....
Komisch, ist das ein Bug?
Gruss
Mario
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 13:50
Titel:
|
 |
Also
habe jetzt deine Bilder mit IMREAD eingelesen, bekomme ich bei topbar.bmp auch diesen Effekt: Oben 1 unten 0, während bei tophalf.bmp Oben 0 unten 1 sind.
Der Fehler tritt in 2007b und 2009b auf, interessant wohl wirklich Bug in Matlab.
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 13:55
Titel:
|
 |
Ich habe vorhin vergessen zu erwähnen, dass Du auch mal folgendes versuchen kannst. Speichere das Bild nach imread unter anderem Namen ab und lese es wieder ein. Der visuelle Inhalt ist zwar gleich, aber die Dateistruktur kann sich geändert haben. Das soll nicht heißen, dass das Problem bei Matlab liegt. Mir ist so ein Fall schon einmal aufgefallen.
Hubertus
|
|
|
Muraer |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2010, 22:47
Titel:
|
 |
Verflucht Leute, habs gerade an einem anderen PC unter Matlab R2010a laufen lassen und - plööö...geht nicht. Selber Fehler, je nach Bild 1 und 0 vertauscht Das vorhin war Fehlalarm...
Himmel Hölle was läuft hier komisch?
Macht Matlab die Vergabe der 1 bzw. 0 davon abhängig, welche Pixel häufiger vorkommen?
Gruss
Mario
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.04.2010, 09:29
Titel:
|
 |
Hast Du zum Schluss das mit GIMP erstellte Bild genutzt oder das andere?
Wenn Du das mit GIMP genutzt hast und es im CMYK Farbraum erstellt und dann erst als 1-Bit tief gespeichert hat könnte es sein, dass er da das K übernommen hat (mal salopp gesprochen). CYMK arbeitet aber mit differenzen (weil es mit Druck zu tun hat) da ist 0 = 1 und anders herum...
Das würde es erklären...ist aber wahrscheinlich nur eine Verschwörungstheorie...
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|