plotしたデータを​自動で保存するにはど​うすればよいですか?

14 vues (au cours des 30 derniers jours)
Maya Nakamura
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

Réponse acceptée

Kojiro Saito
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ファイルの余白を調整したい場合は下記のドキュメントを参考にしてみてください。
  1 commentaire
Maya Nakamura
Maya Nakamura le 19 Juil 2018
無事、実行できました。 プラスαの事まで回答いただき、本当にありがとうございます。

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by