plotしたデータを自動で保存するにはどうすればよいですか?
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Maya Nakamura
el 18 de Jul. de 2018
Comentada: Maya Nakamura
el 19 de Jul. de 2018
以下のコードでは「MATLAB グラフィックスのハンドルは Figureでなければなりません」となります。
%%画像の読み込み
waveDir = fullfile('nasi');
waveScene = imageDatastore(waveDir);
for g = 150:153
RGB1 = readimage(waveScene,g);
RGB2 = readimage(waveScene,g+1);
I = rgb2gray(RGB1);
T = rgb2gray(RGB2);
%creating optical flow
opticFlow = opticalFlowHS;
flow = estimateFlow(opticFlow,I);
flow = estimateFlow(opticFlow,T);
imshow(T, []);
hold on
B =plot(flow, 'DecimationFactor',[10 10],'ScaleFactor',100);
print(B,'color_%d.jpg', g)
hold off
end
0 comentarios
Respuesta aceptada
Kojiro Saito
el 19 de Jul. de 2018
上記のコードではBがAxesになっていますが、printの引数はFigureを入れる必要があります。gcfを使えば現在のFigureを取得できますので、それをprintの引数に入れてみてはいかがでしょうか。また、printの中にgの値を含めてファイル名を入れるにはsprintfを使って'color_%d.jpg', gではなくsprintf('color_%d.jpg', g)にしてみてください。
%%画像の読み込み
waveDir = fullfile('nasi');
waveScene = imageDatastore(waveDir);
for g = 150:153
RGB1 = readimage(waveScene,g);
RGB2 = readimage(waveScene,g+1);
I = rgb2gray(RGB1);
T = rgb2gray(RGB2);
%creating optical flow
opticFlow = opticalFlowHS;
flow = estimateFlow(opticFlow,I);
flow = estimateFlow(opticFlow,T);
imshow(T, []);
hold on
plot(flow, 'DecimationFactor',[10 10],'ScaleFactor',100);
print(gcf, sprintf('color_%d.jpg', g), '-djpeg')
%saveas(gcf, sprintf('color_%d.jpg', g)) でも可
hold off
end
保存されたjpegファイルの余白を調整したい場合は下記のドキュメントを参考にしてみてください。
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!