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 in bild einfügen

 

LTSmash
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 17:24     Titel: bild in bild einfügen
  Antworten mit Zitat      
Hallo miteinander,

ich muss eine Druckvorlage für 4 Passbilder erstellen. Ich habe nun ein weißes .jpg Bild, was mir den Hintergrund darstellt. Der Hintergrund hat 4724 x 3150 Pixel. Mein Passfoto hat 1920 x 1494 Pixel.

Wie kann ich nun in einem MATLAB Skript mein Passfoto an einer (X,Y)-Stelle des Hintergrundes einfügen???

Vielen Dank im Voraus
- LTSmash
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: 07.06.2011, 19:09     Titel:
  Antworten mit Zitat      
Moin, versuche mal das:

Code:
I1 = imread('cameraman.tif');
I2 = ones(400,400);    % Leere Matrix

I1 = im2double(I1);
I2 = im2double(I2);
I3 = I2;
links = 40;   % Der Versatz   ( = 1; = 1;  oben links beginnend )
oben = 40;
row = (1:size(I1,1)) + oben;
col = (1:size(I1,2)) + links;
I3(row,col,:) = I3(row,col,:) + I1;
I3(row,col,:) = I3(row,col,:)-1;

figure; imshow(I3)  

subplot(3,2,3:6),    subimage(I3), axis off
subplot(3,2,2),    subimage(I2), axis off
subplot(3,2,1),    subimage(I1), axis off


Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
LTSmash
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 20:42     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort.

Leider bin ich noch ein blutiger Anfänger in Sachen Bildverarbeitung in MATLAB. Der vorgeschlagene Code funktioniert bei meinem Bsp. nicht so wirklich.

Ich hatte mir folgendes überlegt:
Ich lese die beiden Bilder mit folgendem Code ein:

Code:

background = imread('hintergrund.jpg')
picture = imread('passfoto.jpg')

 


Kann ich jetzt nicht sagen, dass er mir das Bild picture in die Matrix background mit X,Y Werten einbaut???
Gibt es da keinen Befehl???

Dank
- LTSmash
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.06.2011, 23:11     Titel:
  Antworten mit Zitat      
Hallo,

hier ein kleines Beispiel:

Code:
HG = ones(4724, 3150);
foto = rand(1920, 1494);
x = 1000; y = 1000;
HG(x:x+1919,y:y+1493) = foto;
imagesc(HG)


Die interessante Zeile sind die 3. und 4.

Grüße,
Harald
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: 08.06.2011, 07:21     Titel:
  Antworten mit Zitat      
Moin LTSmash,

das Prinzip ist doch recht einfach. Wie Du beiden Beispielen entnehmen kannst, wird zuerst eine leere Matrix definiert, in der Du die Bilder einfügen kannst. Diese Matrix muß natürlich größer sein als Dein Bild. Die Größen mußt Du natürlich anpassen. Die leere Matrix ist in beiden Fällen mit "ones" definiert, damit der Hintergrund weiß bleibt. Dann mußt Du nur noch entscheiden, wo Deine Bilder, die Du einfügen willst, liegen sollen. Wenn Du Dir nicht klar darüber bist, was die einzelnen Befehle bewirken, siehe in den Workspace. Er zeigt die Bilder eindeutig als Matrizen. Jede kannst Du mit imshow als Bild darstellen und den Inhalt ansehen. Natürlich kannst Du die Variablen anders benennen, Du mußt sie nur durchgängig anders benennen.

Warum funktioniert das bei Dir nicht so richtig?? Achte auf die Größe der Variable mit ones - sonst kann das nicht funktionieren. Oder willst Du ein Farbbild einfügen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2011, 18:11     Titel: Graustufenbilder
  Antworten mit Zitat      
Hallo Harald,

wenn ich dein Programm auf Graustufen-Bilder anwende kommt folgende Fehlermeldung:
??? Subscripted assignment dimension mismatch.
Wieso? was muss ich beachten?

Grüße,
Barbara
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2011, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

in welcher Form liegen die Graustufenbilder vor?
Insbesondere, was gibt SIZE für deine Bilder zurück?

Zudem muss der Bereich, in den eingefügt wird, genauso groß sein wie das einzufügende Bild.

Poste doch auch den abgewandelten Code, den du verwendest.

Grüße,
Harald
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 - 2024 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.