Clear Filters
Clear Filters

Create a movie by a matrix (512*512*30)

2 views (last 30 days)
I hade to create a movie in Matlab as temporal sequence of images of a matrix I(512*512*30) double , because I have 30 images(512*512). I tried to apply this code, but it doesn't work, and I don't know how to solve the problem
map=colormap(gray); [X,map]=gray2ind(I); mov=immovie(X,map) movie(X,n_rip,fps)
this is the error: %Error using immovie>parse_inputs (line 84) %Indexed image has to be an M-by-N-by-1-by-K array.

Accepted Answer

Image Analyst
Image Analyst on 7 Apr 2015
See my two attached demos on how to make a movie/video.
  3 Comments
Image Analyst
Image Analyst on 8 Apr 2015
The second line of your code starting with an equal sign won't execute. You say that you have a 3D image I (512,512,n_image) which is probably a color image. So in I(:,:,1,frame) the third dimension is the red channel. But what is frame? I is just a color image - it is not a video so it has no frame. Plus that assignment just won't work
[Im(:,:,:,frame),map] = I(:,:,1,frame);
because I is an array, not a function so you can't take something from teh I image/video and assign it to two things.
Tell me what are you trying to make a video of? What is changing as the frames go on?
Silvia Caruso
Silvia Caruso on 8 Apr 2015
Edited: Silvia Caruso on 8 Apr 2015
I selected from a folder 30 rmi images dicom and I put all this 30 images in I, because I need to order images according to istance number, so now I have this matrix 512*512*30 and I should create the movie with all 30 images.I thought to create a 4-D matrix whit the command
A=cut(4,X(:,:,1),X(:,:,2),X(:,:,3),..,X(:,:,30))
and then
mov = immovie(A,map);
implay(mov,n_rip,fps)
but doesn't work..

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type 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!