Verfasst am: 02.08.2011, 21:27
Titel: Bild in Bild einfügen
Hallo,
ich versuche gerade ein kleineres jpg bild (98x350) in ein Größeres (4721x3150)einzufügen, und dabei sollte kein Rand zusehen sein. Mit welcher Funktion könnte ich das machen ?
Habe gerade erst angefangen mit Matlab zu arbeiten, wäre dementsprechend sehr dankbar für hilfreiche Kommentare.
Habs so schon mal versucht mit "imshow" und "hold on" , aber wenn ich das Bild dann abspeichern möchte, klappt es mit der Funktion "imwrite" nicht und durch "saveas" verschlechtert sich die Qualität sehr. Gibt es da noch eine Möglichkeit, dass ich das Ergebnis auch speichern kann ohne Qulitätsverlust?
Um den "Fehler" zu finden fehlen mir eine ganze Reihe von Details. "imshow" verändert absolut nichts - es zeigt nur an. Das kann nie ein Fehler sein, im Gegenteil, Du kannst das Bild in dieser Form nur speichern, wenn es auch angezeigt wird. Es wird nämlich der Inhalt der figur gespeichert und nicht die eigentlichen Bilddaten. Ein 256*256 Bild wird danach ein 342*420*3 Bild. Insofern verändern die Zeilen ab "frame.." den Inhalt. Du kannst aber zunächst das Bild im *.tif Format speichern, da je nach Bildinhalt die jpg-Artefakte deutlich werden:
Unter pixelig kann man alles verstehen. Du solltest Dir folgende Fragen beantworten:
Sind die Bilder unscharf oder die Strukturen zerissen (Grafik). Sehen die Einzelbilder, die Du zusammenfügst besser aus. Beurteilst Du die Bilder in Matlab oder einem anderen Programm. Du mußt auch die Bildauflösung der Einzelbilder beachten-ist sie gleich. Sind die Bilder vielleicht zu klein. Je kleiner desto deutlicher die Artefakte. Notfalls die Bilder insgesamt per Interpolation vergrößern.
Es geht auch folgendes. Der Vorteil, Du speicherst das tatsächliche Bild und nicht die Figur:
Code:
I1=imread('2.tif'); % das kleinere Bild
I2=imread('1.tif'); % das größere Bild
I1=im2double(I1);
I2=im2double(I2);
I3=I2;
links=40;
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; % Transparenz, geht auch + figure; imshow(I3)
imsave
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
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.