是否有任何替代方法可以使用getframe
并将saveas
图形的内容保存到光栅图像以供进一步处理?
方法一:getframe
h = figure('visible', 'off');
a = axes('parent', h);
% render using `scatter3()` or other plot function.
content = frame2im(getframe(h));
这具有在调用中显示图形以执行屏幕捕获的严重缺点,getframe()
并且在循环中执行此类渲染时存在问题(即content
在每次迭代中保存为视频帧)。
方法二: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');
这种方法具有写入磁盘的严重缺点,这在多线程应用程序中存在问题,并且比直接渲染到内存要慢。由于saveas()
在调用 PNG 编码器之前显然会渲染到内存,所以我想要的是可能的,但我在 MATLAB 文档中找不到任何只执行渲染部分的函数。
问题:
您是否知道将任意axes
内容渲染到光栅图像的另一种方法?