x=imread('mj.jpg');
r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);
figure(1);imagesc(x);
xza=zeros(600,600,3);
Y = 0.299*r + 0.587*g + 0.114*b;
U = b - Y;
V = r - Y;
qy = [16,11,10,16,24,40,51,61;12,12,14,19,26,58,60,55;14,13,16,24,40,57,69,56;
14,17,22,29,51,87,80,62;18,22,37,56,68,109,103,77;24,35,55,64,81,104,113,92;
49,64,78,87,103,121,120,101;72,92,95,98,112,100,103,99];
qc = [17,18,24,47,99,99,99,99;18,21,26,66,99,99,99,99;24,26,56,99,99,99,99,99;
47,66,99,99,99,99,99,99;99,99,99,99,99,99,99,99;99,99,99,99,99,99,99,99;
99,99,99,99,99,99,99,99;99,99,99,99,99,99,99,99];
for i=1:75
for j=1:75
xz=Y(i*8-7:i*8,j*8-7:j*8);
xd=double(xz);
xc=xd-128;
y=dct2(xc);
yq=round(y./qy);
ydq=yq.*qy;
xdq=idct2(ydq);
xe=xdq+128;
xzaY(i*8-7:i*8,j*8-7:j*8)=xe;
end
end
for i=1:75
for j=1:75
xz1=U(i*8-7:i*8,j*8-7:j*8);
xd1=double(xz1);
xc1=xd1-128;
y1=dct2(xc1);
yq1=round(y1./qc);
ydq1=yq1.*qc;
xdq1=idct2(ydq1);
xe1=xdq1+128;
xzaU(i*8-7:i*8,j*8-7:j*8)=xe1;
end
end
for i=1:75
for j=1:75
xz2=V(i*8-7:i*8,j*8-7:j*8);
xd2=double(xz2);
xc2=xd2-128;
y2=dct2(xc2);
yq2=round(y2./qc);
ydq2=yq2.*qc;
xdq2=idct2(ydq2);
xe2=xdq2+128;
xzaV(i*8-7:i*8,j*8-7:j*8)=xe2;
end
end
R=xzaV +xzaY;
B=xzaU +xzaY;
G=(xzaY - 0.299*R -.114*B)/.587;
R=uint8(R);
B=uint8(B);
G=uint8(G);
xza(:,:,1)=R;
xza(:,:,2)=G;
xza(:,:,3)=B;
figure(2);imagesc(xza);
Error using image
TrueColor CData contains element out of range 0.0 <= value <= 1.0
Error in imagesc (line 19)
hh = image(varargin{1},'CDataMapping','scaled');
Error in q6 (line 109)
figure(2);imagesc(xza);