how to read and write a gray AVI video file in 16 bit
Show older comments
I want save a grayscale matrix in a videofile without lost information.
And i want to read this file to compare it.
I try this :
% Create and save
Fmt = 'Grayscale AVI';
% Fmt = 'Uncompressed AVI';
vidObj = VideoWriter('video16.avi',Fmt);
open(vidObj);
for i = 1:100
gray_img = rand(480, 640) * 2^16;
writeVideo(vidObj, double(gray_img./2^16));
end
close(vidObj);
figure;imagesc(gray_img);colormap gray;impixelinfo;
disp( mean2(gray_img) );
% Read and show
vidObj = VideoReader('video16.avi');
for k = 1 : vidObj.NumFrames
frame = read(vidObj, k);
imshow(frame);
end
figure;imagesc(frame);colormap gray;impixelinfo;
disp( mean2(frame) );
but my read frames are always in 8 bit format
Any help should be appreciate
Thanks
Answers (2)
ScottB
on 24 Jan 2024
0 votes
The command VideoWriter has an attribute called "VideoBitsPerPixel" which is the number of bits per pixel in each output frame.
Categories
Find more on Audio and Video Data 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!