plotしたデータを自動で保存するにはどうすればよいですか?
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Maya Nakamura
le 18 Juil 2018
Commenté : Maya Nakamura
le 19 Juil 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 commentaires
Réponse acceptée
Kojiro Saito
le 19 Juil 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ファイルの余白を調整したい場合は下記のドキュメントを参考にしてみてください。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Annotations dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!