Saving a Bilevel - or Binary Image

2 Ansichten (letzte 30 Tage)
Matthew Moynihan
Matthew Moynihan am 26 Jan. 2011
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!

Antworten (2)

Sean de Wolski
Sean de Wolski am 26 Jan. 2011
B = false(X, Y, 1, NumberOfFrames); %casts as logical (1bit)
or
B = logical(B); %for something already in black and white but not 1bit

Siddharth Shankar
Siddharth Shankar am 26 Jan. 2011
B = zeros(X, Y, 1, NumberOfFrames);
B = logical(B);
is what you are looking for. More info here: Logical Types
  3 Kommentare
Matthew Moynihan
Matthew Moynihan am 27 Jan. 2011
Yes, I know, I used the Repmat function to duplicate the logical value.
Siddharth Shankar
Siddharth Shankar am 27 Jan. 2011
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Convert Image Type finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by