| 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 |