HOW TO ENCODE AN 8BIT VALUE FROM A MATRIX

2 次查看(过去 30 天)
HELLO
I have generated a 256x256 matrix with an 8bit binary sequence present in each element. I wish to encode the sequence using the following scheme
A=00
B=01
C=10
D=11
i need to encode the whole matrix.please help.the matrix generated is from the following code
clc
clear all
close all
a=imread('C:\Users\Abzz\Desktop\lena.png');
imshow(a)
disp(a)
for i=1:1:256
for j=1:1:256
b{i,j,1} = dec2bin(a(i,j),8);
end
end
disp(b)
M=randint(256,256,[0,256]);
disp(M)
for k=1:1:256
for l=1:1:256
N{k,l,1} = dec2bin(M(k,l),8);
end
end
disp(N)
thanks in advance

采纳的回答

Pratik Bajaria
Pratik Bajaria 2014-8-14
Hello, Check this. I think it would work for you. It worked for me fine.
for i=1:size(b,1)
for j=1:size(b,2)
dum=0;
for k=1:2:size(b,3)
dum=dum+1;
if (b(i,j,k)*10+b(i,j,k+1))==00
test(i,j,dum)='A';
elseif (b(i,j,k)*10+b(i,j,k+1))==01
test(i,j,dum)='B';
elseif (b(i,j,k)*10+b(i,j,k+1))==10
test(i,j,dum)='C';
else
test(i,j,dum)='D';
end
end
end
end
Please let me know in case of further doubts.
Regards, Pratik
  5 个评论
Pratik Bajaria
Pratik Bajaria 2014-8-14
Ok Let me use altogether new concept to get it done. Used a lot of times in C/C++, the idea of structures.
So use the following code, once you are done executing the above code, I posted and converted them to a 256x256x4 Char Matrix.
for i=1:size(b,1)
for j=1:size(b,2)
test_encode_dummy=test(i,j,1);
for k=2:size(test,3)
test_encode_dummy=cat(2,test_encode_dummy,test(i,j,k));
end
test_encode(i,j).code=test_encode_dummy;
end
end
That's it!
Hope it helps.
Regards, Pratik
Abirami
Abirami 2014-8-15
编辑:Abirami 2014-8-15
sir, im not able to follow...i tried but im getting the following error
Attempted to access b(1,1,2); index out of bounds because size(b)=[256,2048,1].
Error in ==> prat1 at 20 if (b(k,l,m)* 10+b(k,l,m+1))==00
also im not able to view the result...pls help..thanks in advance

请先登录,再进行评论。

更多回答(1 个)

David Sanchez
David Sanchez 2014-8-14
M=randint(256,256,[0,256]);
disp(N)
N=zeros(size(M));
for k=1:256
for l=1:256
N(k,l) = str2double(dec2bin(M(k,l),8));
end
end

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by