Errror using imwrite, can't use "append" in 'WriteMode'
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sai Sirish Gokavarapu
le 5 Sep 2019
Commenté : Sai Sirish Gokavarapu
le 5 Sep 2019
Hey there! I'm trying to use to convert a video ( .avi file) to a .tif STACK but unfortunately the code just converts it to a set of .tif images despite using 'WriteMode' and "append". Is there any other way to achieve in MATLAB ( if I'm not wrong ImageJ has this functionality)
Here's the code, it's similar to that of Joe's written a year ago.
%% To convert avi files to tif images
obj = VideoReader('video.avi');
vid = read(obj);
frames = obj.NumberOfFrames;
% This just converts them to a set of images
% for x = 1 : frames
% imwrite(vid(:,:,:,x),strcat('frame-',num2str(x),'.tif'));
% end
%This is meant to amend that and to make a .tif stack
for x = 1 : frames
imwrite(vid(:,:,:,x),strcat('frame-',num2str(x),'.tif'), 'Compression', 'none','WriteMode', "append");
end
0 commentaires
Réponse acceptée
Alex Mcaulley
le 5 Sep 2019
Modifié(e) : Alex Mcaulley
le 5 Sep 2019
You are changing the file name for each frame, resulting in different tif images. To build a tif stack you just need to use ONE unique file name:
%% To convert avi files to tif images
obj = VideoReader('video.avi');
vid = read(obj);
frames = obj.NumberOfFrames;
% This just converts them to a set of images
% for x = 1 : frames
% imwrite(vid(:,:,:,x),strcat('frame-',num2str(x),'.tif'));
% end
%This is meant to amend that and to make a .tif stack
for x = 1 : frames
imwrite(vid(:,:,:,x),'myimage.tif', 'Compression', 'none','WriteMode', 'append');
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Convert Image Type dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!