Tag: 屏幕捕获

在内存中渲染MATLAB图

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