Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-02-01
年龄: 39
帖子: 5
声望力: 0 ![]() |
![]()
我所用的是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型,难道都要改成一致?还望高手指教,哪里出现问题,谢谢。 |
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[MATLAB数学相关] 请问这个过程应该怎么模拟 | lonelyrex | MATLAB论坛 | 2 | 2009-04-16 14:57 |
[求助]求解方程的问题 | 一个人的旅行 | MATLAB论坛 | 3 | 2009-03-25 16:00 |
[求助]在MATLAB中如何查看命令的源程序是如何写的? | qinyonglyz | MATLAB论坛 | 1 | 2009-01-05 09:20 |
仪表信息图像采集处理研究 | liuna2008 | MATLAB论坛 | 0 | 2008-04-12 18:53 |