HOW TO ENCODE AN 8BIT VALUE FROM A MATRIX

2 Ansichten (letzte 30 Tage)
Abirami
Abirami am 14 Aug. 2014
Bearbeitet: Abirami am 15 Aug. 2014
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

Akzeptierte Antwort

Pratik Bajaria
Pratik Bajaria am 14 Aug. 2014
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 Kommentare
Abirami
Abirami am 15 Aug. 2014
Bearbeitet: Abirami am 15 Aug. 2014
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

David Sanchez
David Sanchez am 14 Aug. 2014
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

Kategorien

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by