Saving a Bilevel - or Binary Image
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I am creating a black and white movie in my code. I create a 4 dimensional matrix of zeros. Each number in the matrix is a uint8. This is the problem.
B = zeros(X, Y, 1, NumberOfFrames);
B = uint8(B);
All I want to save is a 1 and a 0. By doing a unit8 I add 7 extra bits to each pixel. This is over a 25 minute mov file!! How can I save the information using less memory? Is there for example an:
B = binary(B);
Command?
Thanks!
0 个评论
回答(2 个)
Sean de Wolski
2011-1-26
B = false(X, Y, 1, NumberOfFrames); %casts as logical (1bit)
or
B = logical(B); %for something already in black and white but not 1bit
0 个评论
Siddharth Shankar
2011-1-26
B = zeros(X, Y, 1, NumberOfFrames);
B = logical(B);
3 个评论
Siddharth Shankar
2011-1-27
Sean, the code provided above is by no means meant to be "best practice" or the "best way" to do something. I was simply working off the code that "justthebasics" provided. The key was to make him aware of the LOGICAL function.
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!