x=imread('mj.jpg');
r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);
figure(1);imagesc(x);
title('original')
xza=zeros(600,600);
for i=1:75
for j=1:75
red=r(i*8-7:i*8,j*8-7:j*8);
blue=b(i*8-7:i*8,j*8-7:j*8);
green=g(i*8-7:i*8,j*8-7:j*8);
red2=double(red);
blue2=double(blue);
green2=double(green);
red3=red2-128;
blue3=blue2-128;
green3=green2-128;
yred=dct(dct(red3')');
yblue=dct(dct(blue3')');
ygreen=dct(dct(green3')');
p=1;
q=p*8./hilb(8);
yred1=round(yred./q);
yblue1=round(yblue./q);
ygreen1=round(ygreen./q);
yred2=yred1.*q;
yblue2=yblue1.*q;
ygreen2=ygreen1.*q;
yred3=idct(idct(yred2')');
yblue3=idct(idct(yblue2')');
ygreen3=idct(idct(ygreen2')');
yred4=yred3+128;
yblue4=yblue3+128;
ygreen4=ygreen3+128;
yred5=uint8(yred4);
yblue5=uint8(yblue4);
ygreen5=uint8(ygreen4);
cr(i*8-7:i*8,j*8-7:j*8,1)=yred5;
cr(i*8-7:i*8,j*8-7:j*8,3)=yblue5;
cr(i*8-7:i*8,j*8-7:j*8,2)=ygreen5;
end
end
figure(3);imagesc(cr);
title('p=1')
for i=1:75
for j=1:75
red=r(i*8-7:i*8,j*8-7:j*8);
blue=b(i*8-7:i*8,j*8-7:j*8);
green=g(i*8-7:i*8,j*8-7:j*8);
red2=double(red);
blue2=double(blue);
green2=double(green);
red3=red2-128;
blue3=blue2-128;
green3=green2-128;
yred=dct(dct(red3')');
yblue=dct(dct(blue3')');
ygreen=dct(dct(green3')');
p=2;
q=p*8./hilb(8);
yred1=round(yred./q);
yblue1=round(yblue./q);
ygreen1=round(ygreen./q);
yred2=yred1.*q;
yblue2=yblue1.*q;
ygreen2=ygreen1.*q;
yred3=idct(idct(yred2')');
yblue3=idct(idct(yblue2')');
ygreen3=idct(idct(ygreen2')');
yred4=yred3+128;
yblue4=yblue3+128;
ygreen4=ygreen3+128;
yred5=uint8(yred4);
yblue5=uint8(yblue4);
ygreen5=uint8(ygreen4);
cr(i*8-7:i*8,j*8-7:j*8,1)=yred5;
cr(i*8-7:i*8,j*8-7:j*8,3)=yblue5;
cr(i*8-7:i*8,j*8-7:j*8,2)=ygreen5;
end
end
figure(4);imagesc(cr);
title('p=2')
for i=1:75
for j=1:75
red=r(i*8-7:i*8,j*8-7:j*8);
blue=b(i*8-7:i*8,j*8-7:j*8);
green=g(i*8-7:i*8,j*8-7:j*8);
red2=double(red);
blue2=double(blue);
green2=double(green);
red3=red2-128;
blue3=blue2-128;
green3=green2-128;
yred=dct(dct(red3')');
yblue=dct(dct(blue3')');
ygreen=dct(dct(green3')');
p=4;
q=p*8./hilb(8);
yred1=round(yred./q);
yblue1=round(yblue./q);
ygreen1=round(ygreen./q);
yred2=yred1.*q;
yblue2=yblue1.*q;
ygreen2=ygreen1.*q;
yred3=idct(idct(yred2')');
yblue3=idct(idct(yblue2')');
ygreen3=idct(idct(ygreen2')');
yred4=yred3+128;
yblue4=yblue3+128;
ygreen4=ygreen3+128;
yred5=uint8(yred4);
yblue5=uint8(yblue4);
ygreen5=uint8(ygreen4);
cr(i*8-7:i*8,j*8-7:j*8,1)=yred5;
cr(i*8-7:i*8,j*8-7:j*8,3)=yblue5;
cr(i*8-7:i*8,j*8-7:j*8,2)=ygreen5;
end
end
figure(5);imagesc(cr);
title('p=4')
for i=1:75
for j=1:75
red=r(i*8-7:i*8,j*8-7:j*8);
blue=b(i*8-7:i*8,j*8-7:j*8);
green=g(i*8-7:i*8,j*8-7:j*8);
red2=double(red);
blue2=double(blue);
green2=double(green);
red3=red2-128;
blue3=blue2-128;
green3=green2-128;
yred=dct(dct(red3')');
yblue=dct(dct(blue3')');
ygreen=dct(dct(green3')');
p=10;
q=p*8./hilb(8);
yred1=round(yred./q);
yblue1=round(yblue./q);
ygreen1=round(ygreen./q);
yred2=yred1.*q;
yblue2=yblue1.*q;
ygreen2=ygreen1.*q;
yred3=idct(idct(yred2')');
yblue3=idct(idct(yblue2')');
ygreen3=idct(idct(ygreen2')');
yred4=yred3+128;
yblue4=yblue3+128;
ygreen4=ygreen3+128;
yred5=uint8(yred4);
yblue5=uint8(yblue4);
ygreen5=uint8(ygreen4);
cr(i*8-7:i*8,j*8-7:j*8,1)=yred5;
cr(i*8-7:i*8,j*8-7:j*8,3)=yblue5;
cr(i*8-7:i*8,j*8-7:j*8,2)=ygreen5;
end
end
figure(6);imagesc(cr);
title('p=10')