Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-07-08
年龄: 45
帖子: 2
声望力: 0 ![]() |
![]()
这个程序为什么压缩后的图像出不来?其中的压缩比和图像的像素怎么算的,每次改了压缩比应该出来新图形的!请高手帮一下,必要的话,把你载入的图发给我,我在做一下,研究一下!!
%装入原始图像 Sig=imread('G:\untitled.tif'); %设置压缩比 rat=4; Sig=im2double(Sig); %显示原始图像 figure(1); imshow(Sig); %计算离散余弦变换 %分块处理 T=dctmtx(8); %DCTcoe=blkproc(Sig,[8 8],'P1*x*P2',T,T'); DCTcoe=blkproc(Sig(:,:,1),[8 8],'P1*x*P2',T,T'); %T和T转置是DCT函数P1*X*P2的参数 %得到DCT系数矩阵 coeVar=im2col(DCTcoe,[8,8],'distinct'); coe=coeVar; [Y,Ind]=sort(coeVar); %求出DCT系数排列矩阵Y的大小 [m n]=size(coeVar); %按照压缩比保留系数 Snum=64-64/rat; for i=1:n coe(Ind(1:Snum),i)=0; end %重新排列系数块 B2=col2im(coe,[8,8],[m,n],'distinct'); %进行余弦反变换 I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %显示压缩后的图像 figure(4); imshow(I2); |
![]() |
![]() |