Save plot on top of an image.

1 view (last 30 days)
Ana Olivia
Ana Olivia on 16 Jun 2015
Commented: Ana Olivia on 17 Jun 2015
Hello!
I need to save a graph on top of a black image. I have an image, so I want to make a plot on this image, and save it on a new image with black background and with same dimensions.
In the beginning I "paint" the image with black color, since I want both images to have the same dimensions. Then I use ginput and plot to pick the part of the image that I want. Then I open the black image using imshow(blackimage) and I use these commands:
f = getframe(gcf);
DATA = frame2im(f);
and I use imwrite to save DATA.
But I am having a problem with it because this program changes the dimensions of DATA, changes it to uint8, and the image becomes 3D. Please, can someone help me to solve this problem? What can I do to both images have the same dimensions?
Thank you for the help!
  4 Comments
Walter Roberson
Walter Roberson on 16 Jun 2015
Is all of the original image to be included in the final image (except for the part covered up by the plot)? Or are you extracting a portion of the image and want to plot on a sub-portion of that? Something like:
display the full image
user selects a portion of it
everything outside of the selected portion is to be cleared to black
then plot on top in some pre-determined location
Is the plot a constant size and constant coordinates? Or is the user pointing out the location (and implicitly size) to put the plot? What is being set to black??
Ana Olivia
Ana Olivia on 17 Jun 2015
Yes, I want to do this. I want to select a portion of the image and everything outside the selected portion needs to be cleared to black. I tried to use roipoly, but it just works to polygons, and I want a line.
No, the plot is not constant. The user points the location (using ginput). Then the rest is set to black.

Sign in to comment.

Answers (1)

LUI PAUL
LUI PAUL on 16 Jun 2015
Edited: LUI PAUL on 16 Jun 2015
Is this what you are looking for?
uiopen('C:\black.gif',1)%first image
imshow('black.gif');
[x,y] = ginput% select your interest
hold on
plot((1:900),1:900)%second image,plotting on first image
note: 1.here at the time of using "ginput" you have to select area manually and hit enter.
2.insteed of plot use your own.
  1 Comment
Ana Olivia
Ana Olivia on 17 Jun 2015
I already plotted the graphic on the image with black background, but I couldn't save it. Every time I try to save the image the size of it changes. So I am searching for a way to save the modified image (image with plot).
But thanks a lot for answering me!

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!