24小时热门版块排行榜    

查看: 1405  |  回复: 0

skeeter2

新虫 (初入文坛)

[求助] 求详解基于DCT的图像压缩代码解释。运行让我输入压缩比,但是不知道怎么输入!

clc
clear
I=imread('Leonardo DiCaprio.bmp');%图像读入
I=im2double(I);
I1=dct2(I);%图像dct变换
[n m]=size(I1);%求出DCT系数
C=zeros(n,m);
a=I1(1, : );
for i=2:1:m
        a=[a I1(1, : )];
end
A=abs(a);
A=sort(A,'descend');
N=input('请输入压缩比');
K2=int16(sqrt(n*m/N));
C1=zeros(n,m);%量化
C1(1:K2,1:K2)=I1(1:K2,1:K2);
B1=idct2(C1);
K=A(1,N);
MAX=A(1,1);
MAX=MAX+1;
A1=ones(n,m);%DCT系数量化和模板设置
A2=zeros(n,m);
for i=1:1:n
        for j=1:1:m
                if ads(I1(j,i))<k
                   A1(j,i)=0;
                else
                    if I1(j,i)>0
                     A2(j,i)=i+(j-1)*n;
                     else
                        A2(j,i)=-(i+(j-1)*n);
                        end
                        end
                end
        end
end
I1=I1/MAX;%压缩编码
I1=I1.*A1;
I1=I1+A2;
b=zeros(1,N);
num=1;
for i=1:1:n
        for j=1:1:m
        if I1(i,j)~=0
                b(1,num)=I1(i,j);
                num=num+1;
                end
        end
end
I1=I1-fix(I1);%解码
I1=I1*MAX;
I1=idct2(I1);
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(B1);title('压缩图像');
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 skeeter2 的主题更新
信息提示
请填处理意见