Saving a Bilevel - or Binary Image
2 次查看(过去 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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!