3D matrix to Video
Show older comments
Hello all, I have been having a lot of trouble trying to export a video from Matlab from a 3D matrix. The matrix dimensions indicate frame height, width and frame number. The element values are what is being used to form images with commands such as imagesc or imshow. I can create a video in Matlab by putting the imshow or imagesc command in a for loop but I want to extract something equivalent from Matlab to put in youtube or imbed in a powerpoint or soemthing. Here's an example of the situation:
IM % an mxnxz matrix
for i = 1:size(IM,3);
imshow(IM(:,:,i))
pause(.001);
end
Since the matrix has no color information after processing I have run into problems using WriteVideo or im2frame command. Thanks for any help.
Accepted Answer
More Answers (1)
Guangxu Li
on 9 Mar 2020
Edited: Guangxu Li
on 9 May 2020
1 vote
Video to 3D image (single channel)
filename="./*.avi";
obj = VideoReader(filename);
vid = read(obj);
mImage=obj.Width;
nImage=obj.Height;
frames = obj.NumberOfFrames;
Image3D=zeros(nImage,mImage,frames,'uint8');
for x = 1 : frames
Image3D(:,:,x)=vid(:,:,1,x);
end
niftiwrite(Image3D,filename);
2 Comments
Melika Bahmanabasdi
on 6 May 2020
Hi Guangxu Li ,
Thankyou for your answer. I have a question. Why we should use rote90 in Image3D=rot90(Image3D); ?
I can`t understand the reason.
many thanks
Guangxu Li
on 9 May 2020
Dear Bahmanabasdi,
I am very sorry. Please ignore the rotation and flipud lines. That is for my case.
Categories
Find more on Video Formats and Interfaces in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!