4.Initialize another matrix of size MXN. In the
first row copy the random values.

5.For the second row perform circshift. By circshift the pixel at the first column will be moved to the last column and the remaining pixels are shifted to left by one.Eg [10 250
250 10 10 250 250 10].
Now the colors will be [BWWBBWWB].

6.Continue to perform circshift for all the rows. Now the slanting lines are formed.10102502501010250250

10250250101025025010

25025010102502501010

25010102502501010250

10102502501010250250

MATLAB CODE:

%Read the Image

TImg=imread('sleep.jpg');

m=size(TImg,1);

n=size(TImg,2);

if(mod(n,2)~=0)

n=n-mod(n,2);

end

if(mod(n,4)~=0)

n=n-mod(n,4);

end

BImg=uint8(zeros([1 n 3]));

flag=0;

%Values for first column
(bbwwbbwwbbww)

for i=1:2:n

if(flag==1)

BImg(1,i:i+1,:)=10;

flag=0;

else

BImg(1,i:i+1,:)=240;

flag=1;

end

end

%Initialization

A=uint8(zeros([m size(BImg,2)
3]));

Arot=uint8(zeros([m size(BImg,2)
3]));

SImg=uint8(zeros([m size(BImg,2)
3]));

FImg=uint8(zeros([m size(BImg,2)
3]));

A(1,:,:)=BImg(1,:,:);

%Slanting lines

for i=2:m

BImg=circshift(BImg,[1,-1]);

A(i,:,:)=BImg(1,:,:);

end

Steps to perform on foreground Image:

1.Rotate the background image from left to right.

2.Convert the foreground image into binary image
and negate it. Then perform image multiplication with the rotated background
image.

MATLAB
CODE:

%Flip the image from left
to right

Arot(:,:,1)=fliplr(A(:,:,1));

Arot(:,:,2)=fliplr(A(:,:,2));

Arot(:,:,3)=fliplr(A(:,:,3));

%Foreground

BImg=uint8(~im2bw(TImg));

BImg=imresize(BImg,[size(Arot,1)
size(Arot,2)]);

SImg(:,:,1)=BImg.*Arot(:,:,1);

SImg(:,:,2)=BImg.*Arot(:,:,2);

SImg(:,:,3)=BImg.*Arot(:,:,3);

SImg(SImg==0)=1;

Image Mask:

1.Multiply the background image with the binary
foreground image to obtain the mask.

Today, Some of my friends in Facebook posted black and white optical illusion photo saying 'ITS FREAKING AWESOME'.
After seeing the image, I found it's actually black and white illusion. Yes, convert the image to binary and do logical not of the image. When you look or concentrate at one point on the image ,maybe in center you can see a logical not of the image (i.e) White pixels will be black and black pixels will be white.

The most interesting thing is, you can try with your own photo.

MATLAB CODE:

A=imread('illusion.jpg');

B=uint8(zeros(size(A)));
A=~im2bw(A);

Logical Not on Binary Image

for i=1:size(A,1)
for j=1:size(A,2)
if(A(i,j)==1)
B(i,j,:)=255;
end
end
end

Stare at the dots on image for 20 to 30 secs. Close your eyes or look up towards the ceiling.
You can see a binary image. i.e im2bw(A);