キャプチャしたすべての画像をMATLABに保存する必要がありますが、一度に1つの画像を保存することができます。連続してキャプチャされたすべてのイメージをMATLABに保存する方法は?
mycam = webcam();
img = snapshot(mycam);
imwrite(img,'img.jpg');
MATLABで一度に撮影した画像をすべて保存する方法を知っている人は、コードを教えてください。
キャプチャしたすべての画像をMATLABに保存する必要がありますが、一度に1つの画像を保存することができます。連続してキャプチャされたすべてのイメージをMATLABに保存する方法は?
mycam = webcam();
img = snapshot(mycam);
imwrite(img,'img.jpg');
MATLABで一度に撮影した画像をすべて保存する方法を知っている人は、コードを教えてください。
すでに言われているように、sprintf
機能を持つループを使用して、前の画像を上書きしないでください。for
次のコマンドを試してみてください:
%capture the frames
for i =1:n;% n is the number of frames you want to capture
frames{i} = getsnapshot(mycam);
end
%save in the current folder
for i = 1:n;
imwrite(frames{i}, sprintf('imageName%d.jpg',i))
end
現在のフォルダに保存されているすべてのキャプチャされたフレームがあります。
返信ありがとうございました – prithvi17
イメージをムービーとして保存し、後でフレームにアクセスします。これはテストされていませんが、このように動作します。
mycam = webcam();
% if you know the number of images use that here
% a movie is just a collection of frames
% if not then just don't initialize F
F(nFrames) = struct('cdata', [], 'colormap, []);
for i = 1:nFrames
F(i) = im2frame(snapshot(mycam));
end
% save F
movie2avi(F, 'MyMovie.avi', 'compression', 'None');
次に、ムービーを読み込んでフレームを見ることができます。この例ではmovie2avi
古いけどVideoWriter
も、私はこのコンピュータに接続されているウェブカメラを持っていないとして再度テストされていないオプション
v = VideoWriter('MyMovie.avi');
open(v);
for i = 1:nFrames
writeVideo(v, snapshot(mycam));
end
close(v);
で使用しています。しかし、それはアニメーショングラフのために働く。フレームを読み取る方法はdoc readFrame
を参照してください。
返信ありがとう – prithvi17
ループを使用してください。 –
ループを使用する上で、ファイル名がそれぞれの繰り返しで異なるか、または同じファイルを上書きすることになります。 – rayryeng
ご返信ありがとうございます。 私は使用しましたが、必要な結果が得られません。常にシーケンスの最後のフレームを保存します。 – prithvi17