Convert image to a binary stream

I am working on error control in WMSNs. I want to transmit a video through binary symmetric channel with error probability P. So I have frames (images) in each GoP which are shown by a matrix.
Each matrix element have decimal value which might be positive or negative. As explained [here][1] I need to convert this whole matrix to a binary stream. I used
m = reshape(dec2bin(typecast(b(:),'uint8'),8).',1,[]);
for converting elements to binary streams but I cannot get back the exact number using
b_recovered = reshape(typecast(uint8(bin2dec(reshape(m,8,[]).')),'double'),size(b));
On the other side, for sending this matrix through binary symmetric channel, I have to convert the whole matrix to just one bit stream which I'm not sure how to do that. And convert them to a matrix of measured values of a image again.

Réponses (1)

GEEVARGHESE TITUS
GEEVARGHESE TITUS le 25 Fév 2017

0 votes

The following code will give the original values back
b=imread('coins.png');
m = reshape(dec2bin(typecast(b(:),'uint8'),8).',1,[])';
c2= reshape(str2num(m),8,[])';
c3=c2*(2.^(size(c2,2)-1 :-1:0))';
c4=uint8(reshape(c3,[size(b,1) size(b,2)]));
err=c4-b;% zeros indicating the values are same

Catégories

En savoir plus sur Convert Image Type dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by