how to add a matrix with the pixel of an image

3 views (last 30 days)
Hi I want to add a matrix with the pixels of an image.image size is 512 512 and matrix size is 2*2.
I=imread('lina512.bmp');
key=[8 5;5 3];
k=de2bi(key);
red=I(:,:,1);
I1=de2bi(red(:));
I dont know how to do bitwise xor
  5 Comments
sadiqa ilyas
sadiqa ilyas on 7 Sep 2019
k(binary )of key matrix is xored with the binary of the pixels.
I=imread('lina512.bmp');
key=[8 5;5 3];
k=de2bi(key);
red=I(:,:,1);
I1=de2bi(red(:));
[x y]=size(I1);
zor=zeros(size(I1));
for i=1:x
zor(i,:)=xor(I1(i),k)% gives error.
end
zor;
Can u plz tell what is the mistake
Walter Roberson
Walter Roberson on 7 Sep 2019
Your image is probably 8 bit so your I1 is probably something by 8. Your key values are at most 8 so only need 4 bits and there are 4 of them so k is 4x4. zor is the same size as I1 so it is something by 8. You have a for loop over the number of rows in I1 so I1(i) will be a scalar representing one bit (not a row of bits). Your xor that scalar with the 4x4 k so you get a 4x4 result. You try to store that 4x4 result in zor(i, :) which is 1x8.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!