Do The Right Thing
vor 1 Tag
h = figure(1);Die Option Position ermöglicht es, festzulegen wo eine Figure auf dem Bildschirm dargestellt wird und wie groß sie sein soll. Die ersten beiden Werte im Vektor beinhalten die x- und y-Position der linken oberen Figure-Ecke, die beiden letzten geben die Breite und die Höhe der Figure an.
set(h,'Position',[200 200 640 480]);
h = figure(1);Die Option Units lässt die Wahl zwischen:
set(h,'Units','normalized','Position',[0.2 0.2 0.5 0.5]);
bild = imread('test.png','png');Das Ergebnis ist, dass man zwar beide Bilder übereinander liegen hat, aber halt beide zu 50 % durchsichtigt sind. Man möchte ja meistens lieber haben, dass das hintere Bild nicht durchsichtig ist. Dafür muss man nun Alphamaps verwenden.
bild2 = imread('test2.png','png');
figure(1)
imagesc(bild)
hold on
imagesc(bild2)
hold off
alpha(0.5)
bild = imread('test.png','png');Mit diesem Code erhält man die gewünschte Darstellung. Der set-Befehl ist übrigens sehr, sehr mächtig. Viele Objekte in Matlab (z.B. Plots, Figures, Images, Optimierungsfunktionen(hier aber mit optimset)) lassen sich über einen Handler ansprechen und geben einem die Möglichkeit viele Dinge einzustellen. Mit set(h) als Eingabe in die Konsole erhält man alle verfügbaren Optionen, hier hilft natürlich die Hilfe.
bild2 = imread('test2.png','png');
figure(1)
imagesc(bild);
alpha_matrix = 0.5*ones(size(bild2,1),size(bild2,2)); %hier wird einfach nur eine %Matrix erzeigt die 0.5 als Werte hat
hold on
h = imagesc(bild2);
set(h,'AlphaData',alpha_matrix); % das ist der wichtigste Punkt, hier wird über den
%Set-Befehl die alpha_matrix mit dem Bild2 verbunden. h stellt den Handler (eine %Art Verweis) auf das geplottete Bild dar.