![]() |
[求助]运用MATLAB的小波变换对图像进行压缩遇到点小问题
我所用的是wdencmp函数对图像进行压缩,但是根据所写的程序,生成的图像只有一些小点,程序如下:
load whale whos; subplot(1,2,1); image(X); colormap(map); title('原始图像'); %用db3小波对图像X进行2层分解 [c,l]=wavedec2(X,2,'db3'); %全局阈值 [thr,sorh,keepapp]=ddencmp('cmp','wv',X); %压缩处理:对所有高频系数进行同样的阈值量化处理 [Xcmp,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,l,'db3',2,thr,sorh,keepapp); %在这里将double型的Xcmp转为uint8型的X4 X4=im2uint8(Xcmp); %将压缩后的图像与原始图像比较 subplot(1,2,2); image(X4); colormap(map); title('压缩后的图像'); %显示相关系数 disp('小波分解系数中为0的系数个数百分比'); perf0 disp('压缩后保留能量百分比'); perfl2 当中有一段程序如下 %在这里将double型的Xcmp转为uint8型的X4 X4=im2uint8(Xcmp); %将压缩后的图像与原始图像比较 subplot(1,2,2); image(X4); 本来书上是直接 subplot(1,2,2); image(Xcmp); 这样的话图像显示为马赛克,我想可能是double型的缘故,所以我将它改为和原始图像一样的uint8型,但是结果还是现实很多小点点,没能压缩,我从command window看到只有X和X4是uint8型,其他都是double型,难道都要改成一致?还望高手指教,哪里出现问题,谢谢。 |
所有时间均为北京时间。现在的时间是 14:24。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.