Axes in Matrix umwandeln < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
In einem GUI wird ein Axes angezeit in dem zuerst ein schwarzes Bild mit bestimmter Größe geladen wird, danach wird darauf ein Objekt gezeichnet. Mit einem Button soll das Ergebnis gespeichert werden. Momentan bin ich soweit das ich den Inhalt des Axes als Bild speichern kann. Das Problem daran ist das die Größe des gespeichteten Bildes nicht dem des vorher in das Axes geladene ist. Es wird nur die momentane Größe des Axes abgespeichert. Dieses Bild kann aber nicht für weitere Berechnungen genurtz werden da es nicht dem Orginal enspricht. Kennt jemand eine Methode ein Axes in einer bestimmten Größe zu speichern.
-----------------------------------------------------------
Beispiel (grob):
pic = inread('black.bmp');
[height width] = size(pic); %[600 800]
ax = axes;
imshow(pic);
hold on;
fill(y,x,'w'); % zeichnet das Objekt ein
axis off
hold off
f = getframe(ax);
[X, map] = frame2im(f);
imwrite(X,'temp.tif','Resolution', 300,'Compression','none','WriteMode','overwrite');
-----------------------------------------------------------
Resultat:
black.bmp - ist 600x800px
temp.tif - ist später nur noch 162x215px sollte aber so groß wie black.bmp sein
MfG Flow
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:54 Do 30.08.2007 | Autor: | BKM |
Hallo.
Verstehe ich dich richtig, wenn ich sage, du möchtest ein Bild in einem Bild darstellen!? Beispiel eine Erdkugel auf die ein Ausschnitt eines Erdteils vergrößert dargestellt wird.
Beste Grüße
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:22 Do 30.08.2007 | Autor: | Sir_Garnet |
Ich füge zuerst ein Bild (z.B. 800x600px), in ein Axes, ein und zeichne dann darüber ein Objekt (z.B. ein Kreis). So entsteht ein neues Bild im Axes, welches wieder in eine Bild Datei gespeichert werden soll. Dabei soll aber die Größe des ursprüngleichen Bildes (800x600px) erhalten bleiben.
MfG Flow
|
|
|
|
|
Hi,
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
> In einem GUI wird ein Axes angezeit in dem zuerst ein
> schwarzes Bild mit bestimmter Größe geladen wird, danach
> wird darauf ein Objekt gezeichnet. Mit einem Button soll
> das Ergebnis gespeichert werden. Momentan bin ich soweit
> das ich den Inhalt des Axes als Bild speichern kann. Das
> Problem daran ist das die Größe des gespeichteten Bildes
> nicht dem des vorher in das Axes geladene ist. Es wird nur
> die momentane Größe des Axes abgespeichert. Dieses Bild
> kann aber nicht für weitere Berechnungen genurtz werden da
> es nicht dem Orginal enspricht. Kennt jemand eine Methode
> ein Axes in einer bestimmten Größe zu speichern.
>
> -----------------------------------------------------------
>
> Beispiel (grob):
> pic = inread('black.bmp');
> [height width] = size(pic); %[600 800]
> ax = axes;
> imshow(pic);
> hold on;
> fill(y,x,'w'); % zeichnet das Objekt ein
> axis off
> hold off
>
> f = getframe(ax);
> [X, map] = frame2im(f);
> imwrite(X,'temp.tif','Resolution',
> 300,'Compression','none','WriteMode','overwrite');
>
> -----------------------------------------------------------
>
> Resultat:
> black.bmp - ist 600x800px
> temp.tif - ist später nur noch 162x215px sollte aber so
> groß wie black.bmp sein
>
> MfG Flow
Was soll ein 'axes' sein?? meinst du vielleicht eine figure? egal, vielleicht solltest du die figure auf die richtige groesse initialisieren, etwa so:
h=figure('Position',[100 100 N N]); %figure mit breite,hoehe N
axes ('position', [0, 0, 1, 1]); %hier ohne rand
% Draw image plus contour
imagesc(img);
hold on;
axis off
[c,H]=contour(phi,[val val],'b');
%Converting figure to digital image
F = getframe(h);
close(h);
[img_cb,CM] = frame2im(F);
du siehst, ich hab mal so was aehnliches gemacht, habe eine kurve in ein bild geplottet und dann gespeichert.
vg
matthias
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:07 Fr 31.08.2007 | Autor: | Sir_Garnet |
Das sieht ja schon mal ganz vielversprechend aus. Werde das mal testen und mich dann wieder melden.
Danke Flow
PS. Ein Axes ist das kleine Feld in einem Figure in dem Bilder oder Plots usw. angezeigt werden.
|
|
|
|