Contents
Problem 5 - Images
x = imread('E:\Math447\p5\pic.jpg');
x=x(:, 1:2560,:);
figure(1); imagesc(x);
title('Original image in color')
x=double(x);
r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);
xgray=0.2126*r+0.7152*g+0.0722*b;
xgray=uint8(xgray);
n=8;
for i=2:n
for j=1:n
C(i,j)=sqrt(2/n)*cos((i-1)*(j-1/2)*pi/n);
end
end
C(1,1:n)=ones(1,n)/sqrt(n);
z8 = zeros(size(xgray)/8);
[mm,nn] = size(z8);
for i=1:mm;
for j=1:nn;
rb=r(i*8-7:i*8, j*8-7:j*8);
gb=g(i*8-7:i*8, j*8-7:j*8);
bb=b(i*8-7:i*8, j*8-7:j*8);
rd=double(rb); rc=rd-128;
gd=double(gb); gc=gd-128;
bd=double(bb); bc=bd-128;
ry=C*rc'*C';
gy=C*gc'*C';
by=C*bc'*C';
p=1;
Q=p*8./hilb(8);
ryq=round(ry./Q);
gyq=round(gy./Q);
byq=round(by./Q);
rydq=ryq.*Q; rxdq=C'*rydq*C; rxe=rxdq+128;
gydq=gyq.*Q; gxdq=C'*gydq*C; gxe=gxdq+128;
bydq=byq.*Q; bxdq=C'*bydq*C; bxe=bxdq+128;
Xe(i*8-7:i*8, j*8-7:j*8, 1)=rxe;
Xe(i*8-7:i*8, j*8-7:j*8, 2)=gxe;
Xe(i*8-7:i*8, j*8-7:j*8, 3)=bxe;
end
end
figure(2); imagesc(uint8(Xe));
title('Image when p = 1')
z8 = zeros(size(xgray)/8);
[mm,nn] = size(z8);
for i=1:mm;
for j=1:nn;
rb=r(i*8-7:i*8, j*8-7:j*8);
gb=g(i*8-7:i*8, j*8-7:j*8);
bb=b(i*8-7:i*8, j*8-7:j*8);
rd=double(rb); rc=rd-128;
gd=double(gb); gc=gd-128;
bd=double(bb); bc=bd-128;
ry=C*rc'*C';
gy=C*gc'*C';
by=C*bc'*C';
p=10;
Q=p*8./hilb(8);
ryq=round(ry./Q);
gyq=round(gy./Q);
byq=round(by./Q);
rydq=ryq.*Q; rxdq=C'*rydq*C; rxe=rxdq+128;
gydq=gyq.*Q; gxdq=C'*gydq*C; gxe=gxdq+128;
bydq=byq.*Q; bxdq=C'*bydq*C; bxe=bxdq+128;
Xe(i*8-7:i*8, j*8-7:j*8, 1)=rxe;
Xe(i*8-7:i*8, j*8-7:j*8, 2)=gxe;
Xe(i*8-7:i*8, j*8-7:j*8, 3)=bxe;
end
end
figure(3); imagesc(uint8(Xe));
title('Image when p = 10')
z8 = zeros(size(xgray)/8);
[mm,nn] = size(z8);
for i=1:mm;
for j=1:nn;
rb=r(i*8-7:i*8, j*8-7:j*8);
gb=g(i*8-7:i*8, j*8-7:j*8);
bb=b(i*8-7:i*8, j*8-7:j*8);
rd=double(rb); rc=rd-128;
gd=double(gb); gc=gd-128;
bd=double(bb); bc=bd-128;
ry=C*rc'*C';
gy=C*gc'*C';
by=C*bc'*C';
p=20;
Q=p*8./hilb(8);
ryq=round(ry./Q);
gyq=round(gy./Q);
byq=round(by./Q);
rydq=ryq.*Q; rxdq=C'*rydq*C; rxe=rxdq+128;
gydq=gyq.*Q; gxdq=C'*gydq*C; gxe=gxdq+128;
bydq=byq.*Q; bxdq=C'*bydq*C; bxe=bxdq+128;
Xe(i*8-7:i*8, j*8-7:j*8, 1)=rxe;
Xe(i*8-7:i*8, j*8-7:j*8, 2)=gxe;
Xe(i*8-7:i*8, j*8-7:j*8, 3)=bxe;
end
end
figure(4); imagesc(uint8(Xe));
title('Image when p = 20')