Hi, I would like to use getimage or some other function to capture the current figure which has for example an image + a line drawn on top of it. I tried
imshow rice.png
hold on
line([1 256],[1 256]);
hold off
Im = getimage;
but it doesn't capture the line. Please tell me how it the right way to do this.
Thanks. Razvan

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 3 Sep. 2011

0 Stimmen

See getframe()
You should also become familiar with saveas() and print(), and if you start doing anything more complex, you should become familiar with the user contribution export_fig

3 Kommentare

Razvan
Razvan am 3 Sep. 2011
Thanks!
Razvan
Razvan am 5 Sep. 2011
Is it a way to use getframe with a figure which is not visible (after using set(figHandle, 'Visible', 'off')) ? I would like to get the frames of a movie without displaying the movie, and without saving the movie (without |addframe|). Thanks in advance!
Walter Roberson
Walter Roberson am 6 Sep. 2011
No, there is no way to getframe() a figure which is not visible.
Capturing frames without displaying them is not easy on Windows, but I seem to recall that someone has a MATLAB File Exchange contribution that helps. And Yair probably has something relevant in his undocumentedmatlab site.
The particular case that you show above, of loading an image and drawing a line parallel to an axis, I would just do all in memory without displaying the images at all: if you have an image, then it is relatively easy to convert the image to truecolor (if it isn't already) and then to set a row or column of the matrix all to a particular value (to create the line.)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Printing and Saving finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by