Overlay a image with plot

4 vues (au cours des 30 derniers jours)
Georg Edelmann
Georg Edelmann le 18 Fév 2020
Commenté : Kurt le 5 Déc 2023
Hey Guys,
i want to overlay a image with a the plot i made,
The first Subplot is just the Plot an the second shall be the combination.
Here is my Code:
I = imread('Bild_1.jpg');
I=I(:,:,1);
white = sum(I,2);
[Rows,numCols] = size(I);
x0=0;
y0=0;
width=numCols;
height=Rows;
set(gcf,'position',[x0,y0,width,height])
subplot(1,2,1)
plot(white);
view([90 90]);
saveas(gcf,'Plot_01.png',[x0,y0,width,height]);
P1=imread('Plot_01.png');
P2= imrotate(P1,90,'bicubic','crop');
subplot(1,2,2)
imshowpair(P2,I,'blend','Scaling','joint')
My Problem is that the Plot and the image are in a 90° Angle to each other. Moreover the saved Plot doest not have the same (Pixel)Size.
Hope you can help me

Réponse acceptée

Srivardhan Gadila
Srivardhan Gadila le 25 Fév 2020
Below are some suggestions: (only for the above code)
  1. (line 14 - 17) Instead of using subplots use figure and save the plot
  2. (line 20, 21) Rotate the image first and then resize it
Below is the code after making changes:
I = imread('Bild_1.jpg');
I=I(:,:,1);
white = sum(I,2);
[Rows,numCols] = size(I);
x0=0;
y0=0;
width=numCols;
height=Rows;
figure
set(gcf,'position',[x0,y0,width,height])
plot(white);
view([90 90]);
saveas(gcf,'Plot_01.png',[x0,y0,width,height]);
P1=imread('Plot_01.png');
P1 = imrotate(P1,90);
P2 = imresize(P1,[Rows,numCols],'bicubic');
figure
imshowpair(P2,I,'blend','Scaling','joint')
  2 commentaires
Georg Edelmann
Georg Edelmann le 26 Fév 2020
thank you a lot
Kurt
Kurt le 5 Déc 2023
imshowpair and imrotate require the Image Processing Toolbox.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by