Create working avi video.

Always when I try to create an .avi video out of matrices I get the following error: Invalid video data - must be numeric or logical data type.
function [video] = CreateVideo(obj)
video = VideoWriter('test.avi');
video.FrameRate = 1;
open(video)
% loop 2d matrix sequence with ones and zeros and create video
for i_inc = 1 : size(obj.square_move_seq_, 3)
gray_img = double(obj.square_move_seq_(:, :, i_inc));
img = cat(3, gray_img, gray_img, gray_img);
writeVideo(video, img);
end
% Finalize the video file.
close(video);
end
Does somebody have a clue what I do wrong?
Thank you very much in advance.

 Accepted Answer

Try
writeVideo(video, uint8(img));

6 Comments

Sorry to say this, but nothing changed -> still the same error
Image Analyst
Image Analyst on 19 Aug 2017
Edited: Image Analyst on 19 Aug 2017
Please give the ENTIRE error message - ALL the red text - not just a small snippet snipped out of it.
You can see my attached demos for a way that works.
Also explain why you convert grayImage to double(). Why??? Did someone incorrectly tell you to do that?
baxbear
baxbear on 20 Aug 2017
Edited: baxbear on 20 Aug 2017
There is no red text, what I have is only the error message in the implay window (Invalid video data - must be numeric or logical data type.)
clear all
clc
sq = TestSquare(10, [1, 1]);
sq.Move(1, 1);
sq.NextStep();
sq.Move(1, 2);
sq.NextStep();
% CreateVideo() is a method from TestSquare
implay(sq.CreateVideo())
PS.: I used double because I was hoping to fix the error this way.
didn't work because I used close in CreateVideo()
So, is it solved now? Or do you still have a problem?
baxbear
baxbear on 27 Aug 2017
Edited: baxbear on 27 Aug 2017
Yes, this particular problem is solved. I still have some problems with the visualisation but I will open a separate thread for it.
Thank you very much.

Sign in to comment.

More Answers (0)

Asked:

on 19 Aug 2017

Edited:

on 27 Aug 2017

Community Treasure Hunt

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

Start Hunting!