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 aus mehrere Bildern erstellen

 

Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 05:01     Titel:
  Antworten mit Zitat      
Verwende mal das Bild "cameramantif", das gehört zu Matlab und das zeigt auch den Bildausschnitt. Vielleicht hast du mit dem Ausschnitt eine schwarze Stelle getroffen?
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 09:12     Titel:
  Antworten mit Zitat      
Moin tobiasfw,

da ist mir ein dusseliger Fehler unterlaufen. Die korrekte Zeile heißt:

Code:
pic1 = double(imread('1a.bmp'))/256;
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 18:41     Titel:
  Antworten mit Zitat      
mh, stimmt, die Variable bg ist double, pic1 etc. sind uint8

bg wird folgendermaßen erstellt:

bg = zeros(480,640,3);

Wird das dann automatisch double?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 18:52     Titel:
  Antworten mit Zitat      
Matlab kann man leichter lernen, wenn man sich immer mal die Rückgabewerte im Workspace ansieht. Setze einfach den Befehl ab und sehe dir das Ergebnis an.
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 19:07     Titel:
  Antworten mit Zitat      
Okay, also das mit dem double habe ich hingekriegt.

Ich erstelle das Gesamtbild mit der AUflösung von 640*480 jetzt so:

Code:
   bg = zeros(480,640,3);
    bg = uint8(bg)



Das Problem ist jetzt, dass das zusammengesetzte Bild vollkommen schwarz aussieht. Vollkommen schwarz? Nein, nur sehr nahe an schwarz. Wenn ich rechne:
Code:

   pic1 = pic1*8


...dann sieht es schon wieder einigermaßen gut aus (cameraman.tif habe ich übrigens nicht gefunden). Das hat mich stutzig gemacht. Deshalb habe ich das nochmal verglichen, mit und ohne dritte Dimension (für RGB).

Also nochmal in Kürze:

Code:
pic1 = imread('bild.bmp')
imshow(pic1)
 

...ergibt eine gute Darstellung des Bildes, allerdings in einem Blauton.

Code:
pic2 = imread('bild.bmp')
pic2 = repmat(pic2,[1 1 3]);
imshow(pic2)
 

...ergibt ein fast schwarzes Bild.

Aber: die Zahlenwerte sind in beiden Fällen gleich. Das heißt z.B.
Code:
pic1(45,55) == pic2(45,55,1)


Das ist schon etwas merkwürdig. Vielleicht brauche ich ja auch die RGB-Darstellung nciht, denn ich habe ausschließlich Bilder in Grautönen.

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 19:18     Titel:
  Antworten mit Zitat      
Cameraman.tif liegt in:

>> which cameraman.tif

....\toolbox\images\imdemos\cameraman.tif

Das Bild läßt sich immer gut als Vergleichsbild einsetzen, da jeder Matlabuser das Bild im Programm findet, natürlich auch noch andere Bilder. Da dein Bild nicht bekant ist, bleibt das alles ein Rätselraten. Manchmal sind Bilder eben nicht unproblematisch.

Solltest du das Bild nicht finden, gebe es in Google ein und stelle Googlesuche auf Bilder um. Da findest du alle Varianten. Schau dir erstmal das Ergebnis mit dem Bild an. Ein Fehler in deiner Funktion liegt so gesehen nicht vor, kann jedenfalls kein Fehler entdecken.
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 19:28     Titel:
  Antworten mit Zitat      
Bei dem cameraman.tif scheint es kein Problem zu sein.

Dann liegt es wohl an meiner Datei Sad

Die wollte ich ebenfalls anhängen, ist aber hier "verboten"!

cameraman2.jpg
 Beschreibung:

Download
 Dateiname:  cameraman2.jpg
 Dateigröße:  28.3 KB
 Heruntergeladen:  346 mal
cameraman1.jpg
 Beschreibung:
So sieht es aus ohne repmat

Download
 Dateiname:  cameraman1.jpg
 Dateigröße:  30.86 KB
 Heruntergeladen:  370 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 19:34     Titel:
  Antworten mit Zitat      
Ist dein Bild wirklich eine m*n Matrix oder eine RGB-SW Darstellung. Ein SW-Bild führt nach deinem Beispiel:

Zitat:
pic1 = imread('bild.bmp')
imshow(pic1)


auf keinen Fall zu einem blauen Bild. Nur über imagesc wird ein SW-Bild zu einem farbig codierten Bild,
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 19:51     Titel:
  Antworten mit Zitat      
Wenn ich das Bild zippe, kann ich es anhängen. Also wenn ich auf dieses Bild

pic1 = imread('1a.bmp')
imshow(pic1)

...anwende, ist es blau. Bei euch anders?

1a.zip
 Beschreibung:

Download
 Dateiname:  1a.zip
 Dateigröße:  2.62 KB
 Heruntergeladen:  241 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 20:00     Titel:
  Antworten mit Zitat      
Dein Bild ist zwar SW, in Matlab geöffnet aber tiefschwarz. In anderen Programmen wird das Bild heller ausgegeben. Auf keinen Fall Blau.
Hast du ein Problem mit imshow? Suche mal nach einer anderen imshow-Variante ( darf eigentlich nicht sein ).

>> which imshow -all
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 20:34     Titel:
  Antworten mit Zitat      
So, Problem gefunden! Das Bild ist indiziert! Du mußt es also über

Code:


einlesen. Mit ind2gray kannst du ggf. daraus ein normales Graustufenbild machen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.