coeff = 284160/9;
close all;
imgRGB = imread('8.bmp');
img_R = imgRGB(:,:,1);
img_G = imgRGB(:,:,2);
img_B = imgRGB(:,:,3);
Y = double(imgRGB(:,:,1));
Cb = double(imgRGB(:,:,2));
Cr = double(imgRGB(:,:,3));
Y_dct=dct2(Y);
Cb_dct=dct2(Cb);
Cr_dct=dct2(Cr);
Y_pow = Y_dct.^2;
Cb_pow = Cb_dct.^2;
Cr_pow = Cr_dct.^2;
Y_pow=Y_pow(:);
Cb_pow=Cb_pow(:);
Cr_pow=Cr_pow(:);
[B_y,index_y]=sort(Y_pow);
[B_cb,index_cb]=sort(Cb_pow);
[B_cr,index_cr]=sort(Cr_pow);
index_y=flipud(index_y);
index_cb=flipud(index_cb);
index_cr=flipud(index_cr);
im_dct_y=zeros(size(Y));
im_dct_cb=zeros(size(Cb));
im_dct_cr=zeros(size(Cr));
for ii=1:coeff
im_dct_y(index_y(ii))=Y_dct(index_y(ii));
im_dct_cb(index_cb(ii))=Cb_dct(index_cb(ii));
im_dct_cr(index_cr(ii))=Cr_dct(index_cr(ii));
end
im_y=idct2(im_dct_y);
im_cb=idct2(im_dct_cb);
im_cr=idct2(im_dct_cr);
im=zeros(size(Y,1),size(Y,2),3);
im(:,:,1)=im_y;
im(:,:,2)=im_cb;
im(:,:,3)=im_cr;
im=uint8(im);
imshow(imgRGB)
figure;
imshow(im);
return;