Problems with Matlab Projects? You may face many Problems, but do not worry we are ready to solve your Problems. All you need to do is just leave your Comments. We will assure you that you will find a solution to your project along with future tips. On Request we will Mail you Matlab Codes for Registered Members of this site only, at free service...Follow Me.

MATLAB CODE FOR IMAGE COMPRESSION


infile='aish.jpg';

if (exist(infile)==2)

a = imread(infile);

figure('Name','Input image');

imshow(a);

else

warndlg('The file does not exist.',' Warning ');

im=[];

return

end

if isrgb(a)

if isa(a(:,:,1),'uint8')

red = double(a(:,:,1));

green = double(a(:,:,2));

blue = double(a(:,:,3));

red_dct=dct2(red);

green_dct=dct2(green);

blue_dct=dct2(blue);

red_pow = red_dct.^2;

green_pow = green_dct.^2;

blue_pow = blue_dct.^2;

red_pow=red_pow(:);

green_pow=green_pow(:);

blue_pow=blue_pow(:);

[B_r,index_r]=sort(red_pow);

[B_g,index_g]=sort(green_pow);

[B_b,index_b]=sort(blue_pow);

index_r=flipud(index_r);

index_g=flipud(index_g);

index_b=flipud(index_b);

im_dct_r=zeros(size(red));

im_dct_g=zeros(size(green));

im_dct_b=zeros(size(blue));

coeff=25000;

for ii=1:coeff

im_dct_r(index_r(ii))=red_dct(index_r(ii));

im_dct_g(index_g(ii))=green_dct(index_g(ii));

im_dct_b(index_b(ii))=blue_dct(index_b(ii));

end

im_r=idct2(im_dct_r);

im_g=idct2(im_dct_g);

im_b=idct2(im_dct_b);

im=zeros(size(red,1),size(red,2),3);

im(:,:,1)=im_r;

im(:,:,2)=im_g;

im(:,:,3)=im_b;

im=uint8(im);

outfile='aish2.jpg';

imwrite(im, outfile);

figure('Name','Output image');

imshow(im);

return;

end

if isa(a(:,:,1),'uint6')

red = double(a(:,:,1));

green = double(a(:,:,2));

blue = double(a(:,:,3));

red_dct=dct2(red);

green_dct=dct2(green);

blue_dct=dct2(blue);

red_pow = red_dct.^2;

green_pow = green_dct.^2;

blue_pow = blue_dct.^2;

red_pow=red_pow(:);

green_pow=green_pow(:);

blue_pow=blue_pow(:);

[B_r,index_r]=sort(red_pow);

[B_g,index_g]=sort(green_pow);

[B_b,index_b]=sort(blue_pow);

index_r=flipud(index_r);

index_g=flipud(index_g);

index_b=flipud(index_b);

im_dct_r=zeros(size(red));

im_dct_g=zeros(size(green));

im_dct_b=zeros(size(blue));

for ii=1:coeff

im_dct_r(index_r(ii))=red_dct(index_r(ii));

im_dct_g(index_g(ii))=green_dct(index_g(ii));

im_dct_b(index_b(ii))=blue_dct(index_b(ii));

end

im_r=idct2(im_dct_r);

im_g=idct2(im_dct_g);

im_b=idct2(im_dct_b);

im=zeros(size(red,1),size(red,2),3);

im(:,:,1)=im_r;

im(:,:,2)=im_g;

im(:,:,3)=im_b;

im=uint16(im);

imwrite(im, outfile);

figure('Name','Output image');

imshow(im);

return;

end

if isa(a(:,:,1),'double')

red = double(a(:,:,1));

green = double(a(:,:,2));

blue = double(a(:,:,3));

red_dct=dct2(red);

green_dct=dct2(green);

blue_dct=dct2(blue);

red_pow = red_dct.^2;

green_pow = green_dct.^2;

blue_pow = blue_dct.^2;

red_pow=red_pow(:);

green_pow=green_pow(:);

blue_pow=blue_pow(:);

[B_r,index_r]=sort(red_pow);

[B_g,index_g]=sort(green_pow);

[B_b,index_b]=sort(blue_pow);

index_r=flipud(index_r);

index_g=flipud(index_g);

index_b=flipud(index_b);

im_dct_r=zeros(size(red));

im_dct_g=zeros(size(green));

im_dct_b=zeros(size(blue));

for ii=1:coeff

im_dct_r(index_r(ii))=red_dct(index_r(ii));

im_dct_g(index_g(ii))=green_dct(index_g(ii));

im_dct_b(index_b(ii))=blue_dct(index_b(ii));

end

im_r=idct2(im_dct_r);

im_g=idct2(im_dct_g);

im_b=idct2(im_dct_b);

im=zeros(size(red,1),size(red,2),3);

im(:,:,1)=im_r;

im(:,:,2)=im_g;

im(:,:,3)=im_b;

imwrite(im, outfile);

figure('Name','Output image');

imshow(im);

return;

end

end

if isgray(a)

dvalue=double(a);

if isa(a,'uint8')

img_dct=dct2(dvalue);

img_pow=(img_dct).^2;

img_pow=img_pow(:);

[B,index]=sort(img_pow);

B=flipud(B);

index=flipud(index);

compressed_dct=zeros(size(dvalue));

for ii=1:coeff

compressed_dct(index(ii))=img_dct(index(ii));

end

im=idct2(compressed_dct);

im=uint8(im);

end

if isa(a,'uint16')

img_dct=dct2(dvalue);

img_pow=(img_dct).^2;

img_pow=img_pow(:);

[B,index]=sort(img_pow);

B=flipud(B);

index=flipud(index);

compressed_dct=zeros(size(dvalue));

for ii=1:coeff

compressed_dct(index(ii))=img_dct(index(ii));

end

im=idct2(compressed_dct);

im=uint16(im);

end

if isa(a,'double')

img_dct=dct2(dvalue);

img_pow=(img_dct).^2;

img_pow=img_pow(:);

[B,index]=sort(img_pow);

B=flipud(B);

index=flipud(index);

compressed_dct=zeros(size(dvalue));

for ii=1:coeff

compressed_dct=zeros(size(dvalue));

end

im=idct2(compressed_dct);

end

imwrite(im, outfile);

figure('Name','Output image');

imshow(im);

return;

end

0 comments:

Post a Comment

Recent Comments

Popular Matlab Topics

Share your knowledge - help others

Crazy over Matlab Projects ? - Join Now - Follow Me

Sites U Missed to Visit ?

Related Posts Plugin for WordPress, Blogger...

Latest Articles

Special Search For Matlab Projects

MATLAB PROJECTS

counter

Bharadwaj. Powered by Blogger.