How to create a video from grayscale and rgb images?

7 views (last 30 days)
I have e.g., 20 grayscale frames and 20 RGB color images.
I would like to make a video that has in each frame one grayscale image in the left and one RGB color image in the right.
I am using this code but I get all the frames are black :
vid = VideoWriter(['./video.avi']);
vid.Quality = 100;
vid.FrameRate = 10;
open(vid);
for i = 1: 20
imout = [ cat(3,grayImg(:, :,i),grayImg(:, :, i),grayImg(:, :, i)) zeros( size(grayImg,1), 10, 3) (RGBImg(:, :, :,i)) ];
writeVideo( vid, imout);
end
close(vid);
any help will be appreciated :)

Accepted Answer

Image Analyst
Image Analyst on 2 Jan 2023
Edited: Image Analyst on 2 Jan 2023
  3 Comments
Image Analyst
Image Analyst on 2 Jan 2023
Edited: Image Analyst on 2 Jan 2023
grayImg is not defined. You need to define it. And when you do this:
for i = 1: 20
imout = [ cat(3,grayImg(:, :,i),grayImg(:, :, i),grayImg(:, :, i)) zeros( size(grayImg,1), 10, 3) (RGBImg(:, :, :,i)) ];
you're assuming grayImg will be a hyperspectral image with 20 color channels, which it's not.
MatlabUser
MatlabUser on 3 Jan 2023
actually grayImg is defined to be a 3D array Y,X,number of freames...
so when I use for i=1:20, I am iterating on the frames one by one.
it works fine after rescale the grayscale images to range 0,255 :)
thanks.

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!