相关疑难解决方法(0)

在内存中渲染MATLAB图

是否有任何替代方法可以使用getframesaveas将图形内容保存到光栅图像中以进行进一步处理?

方法1: getframe

h = figure('visible', 'off');
a = axes('parent', h);

% render using `scatter3()` or other plot function.

content = frame2im(getframe(h));
Run Code Online (Sandbox Code Playgroud)

这具有显示图形在调用中执行屏幕捕获的严重缺点,getframe()并且当在循环中执行这样的渲染时(即,content在每次迭代时将其保存为视频帧)存在问题.

方法2: saveas

h = figure('visible', 'off');
a = axes('parent', h);

% render using `scatter3()` or other plot function.

saveas(h, '/path/to/file.png');
content = imread(/path/to/file.png');
Run Code Online (Sandbox Code Playgroud)

这种方法具有写入磁盘的严重缺点,这在多线程应用程序中存在问题,并且比直接渲染到内存要慢.因为saveas()在调用PNG编码器之前显然会渲染到内存,所以我想要的是可能的,但我在MATLAB文档中找不到任何只执行渲染部分的函数.

问题:

您是否知道将任意axes内容渲染到光栅图像的替代方法?

video matlab image screen-capture off-screen

24
推荐指数
3
解决办法
1万
查看次数

标签 统计

image ×1

matlab ×1

off-screen ×1

screen-capture ×1

video ×1