Apakah ada alternatif selain menggunakan getframe
dan saveas
untuk menyimpan konten gambar ke gambar raster untuk diproses lebih lanjut?
Pendekatan 1: getframe
h = figure('visible', 'off');
a = axes('parent', h);
% render using `scatter3()` or other plot function.
content = frame2im(getframe(h));
Ini memiliki kelemahan serius dalam menampilkan gambar untuk melakukan tangkapan layar dalam panggilan ke getframe()
dan ini menjadi masalah saat melakukan render seperti itu dalam satu lingkaran (yaitu menyimpan content
pada setiap iterasi sebagai bingkai video).
Pendekatan 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');
Pendekatan ini memiliki kelemahan serius dalam menulis ke disk, yaitu bermasalah dalam aplikasi multithread, serta lebih lambat dibandingkan merender langsung ke memori. Karena saveas()
jelas akan dirender ke memori sebelum memanggil encoder PNG, apa yang saya inginkan mungkin terjadi, tetapi saya tidak dapat menemukan fungsi apa pun di dokumentasi MATLAB yang hanya melakukan bagian rendering.
Pertanyaan:
Apakah Anda mengetahui cara alternatif untuk merender konten axes
sembarang ke gambar raster?